Yii和ThinkPHP對比心得

本人小菜鳥一隻,爲了自我學習和交流PHP(jquery,linux,lamp,shell,javascript,服務器)等一系列的知識,小菜鳥建立了一個羣。但願光臨本博客的人能夠進來交流。尋求共同發展。搭建平臺。javascript

本人qq羣也有許多的技術文檔,但願能夠爲你提供一些幫助(非技術的勿加)。

QQ羣:   281442983 (點擊連接加入羣:http://jq.qq.com/?_wv=1027&k=29LoD19)    QQ:1542385235php

 

這是個人真心體會,在嘗試使用Laravel、ThinkPHP、Yii、symfony二、CI、cakephp、Yii2 以後的真實想法(default7#zbphp.com)。java

1)ThinkPHP (版本3.1.3)jquery

我一開始用到的是ThinkPHP 3.1.3,入門門檻就是網址與方法對應這一點。當初我接觸ThinkPHP3.1.3的時候其實3.2版本剛出不久,3.2與3.1.x相比是部分重構,用上了最新的 命名空間 ,考慮到購買的虛擬主機可能不支持命名空間(命名空間必須PHP 5.3.3+才支持),也考慮到國內大部分企業若是已經用上了ThinkPHP,確定也可能不是最新版的,因此一開始選擇的是ThinkPHP3.1.3,用他作了一個網站。整體感受很好用,他爲你作了儘量及的一切。並且thinkphp是一家公司在支持,這樣就不會說忽然倒閉解散,若是是企業想用PHP來作一個平臺的話,很不錯的選擇,長期穩定。linux

2)Yii (版本 Yii 1.1.14)laravel

我學會了ThinkPHP以後,我就想到了再多學一門框架吧,這樣之後找工做也更好一點,談也好談。而後偶然一次我去一家金融方面的公司面試PHP,他們用的是Yii。回來後網上搜索了Yii相關資料,看到不少人對Yii的介紹稱讚, AR、延遲加載、DAO、L10N、I18N,感受yii必定頗有前景 。便開始研究Yii(Yii 1.1.x)。看手冊,全英文的,偶然有看到帖子說Yii做者是中國人。後來才確認Yii 確實只中國人寫的。看了入門,本身下載下來安裝,感受以本身如今的水平來講很難,不少要記憶的zii widgets,並且耦合度很是高,( 我剛開始接觸Yii的時候寫的一個見解 http://bbs.csdn.net/topics/390807796 )Html模板裏面的寫法耦合度更高,便放棄了。程序員

 

3)cakephp (版本 2.5.1)面試

到了這個時候,內心想的是就選一門容易點的框架來講,想到了不少年之前就聽過的那一款框架CakePHP(最新版本cakephp 2.5.1)。下載下來安裝,看文檔 不支持命名空間、不用PHP最新的功能方法 。看了英文的一部分文檔,很方便的感受,對比yii,跟thinkphp同樣有專門講到圖片驗證碼、SESSION、cookie操做,很相似thinkphp,不少都爲你作好了。而後我下載來作本身的一個網站,我一開始就先作管理員部分,結果就發現, 按照cakephp 的思路,管理員和前臺其實應該是在一個文件裏面的 。好比你有一個Post表,那麼你的管理員和前臺的針對Post的操做所有都是在PostController裏面,而我期待的是 必須先後臺分離,沒有耦合 。thinkphp

4)symfony2(symfony 2.5)shell

若是不是一本書上介紹到symfony,而且對他有不少很是好的評價,我想我絕對特不會知道並關注symfony2的。開始接觸symfony2, 發現他安裝方法跟我之前接觸到的PHP徹底不同,composer安裝,很新穎,這 徹底顛覆了我之前對PHP的某些認識 。Symfony2必須在PHP 5.3.3以上的版本,其實如今再去看,是必須PHP 5.4+以上版本,由於他裏面的一些組件component要求的是最新版本,由於我寫這篇文章的時候,我對這些框架的接觸都是在數個禮拜以前,而這一段時間看的框架太多,可能有點混淆,若是有紕漏,或者探討能夠發郵件 default7#zbphp.com。安裝好了symfony2以後,仔細閱讀symfony2的內容,他最大的特色就是將一整套程序的運行對比成電腦計算機的 Input+Output+CPU 。Request Resonse 和 PHP處理部分( 其實這樣的思路後來其餘的框架Yii laravel cakephp 3.x全都借鑑了 )。我再繼續閱讀symfony2的文檔,他裏面不會像thinkphp那樣講圖片驗證碼、IP、IP歸屬地怎麼查詢、圖片怎麼上傳處理之類的,搜索不少相關資料,感受 symfony2是一個HTTP框架,可是並非MVC框架,而是一個HTTP框架。他有C 和V,可是沒有M 。思路跟yii thinkphp徹底不同的, 組件化 component的思想,跟Ror的任何都是對象的思路不同,他是 任何都是組件,低耦合 。

5)Laravel (Laravel4.2)

我繼續搜索PHP MVC Framework方面的帖子,找了好久,看到有一篇文章上配了一張圖(上面那一張),說截止到2013年年末,Laravel佔有率是最高的!而後便去了解laravel,百度搜索Laravel,已經有蠻多網站了,好比 www.golaravel.com,介紹laravel框架,文檔,介紹到Restful功能、是企業級框架。

其實我一直以來都想找一個這樣的框架,長期、穩定,不會一會兒就解散了不支持了,不會說今天一變明天一變。而且有命名空間最新的幾個功能得有,能夠 省去之後常常重構麻煩。下載安裝laravel,也是composer方式安裝。而後開始用了,發現他官方上一直很推崇的路由功能,使用起來卻很繁瑣。每一條請求網址都要寫一條路由。想到這裏以爲不敢想像,一個網站的網址不少的,並且不相同的規律,包括管理員後臺,若是這樣 每一條網址都要寫一個路由 ,並且所有都是些到routes.php這一個文件裏面去, 你想象一下, 加載要耗費多少資源時間???並且描述上說的文檔豐富,可是看到了真的不多,不齊全(對比symfony cakephp,他的文檔真少)。

6)從新回到Yii(Yii 2.0)

其實我這一陣子一直都在尋找一款MVC框架, 支持命名空間、支持AR、方便好用,有圖片驗證碼自動生成、圖片上傳處理,水印處理,支持I18N,多語言、有不少人在使用、成熟的文檔、穩定長期、適合企業級 。最後對比了這麼多框架仍是回到了最開始想到的那幾個框架,從新回到Yii。想到本身爲何一開始就以爲Yii不適合,但去對比了其餘框架,才發現Yii是幾乎最好的,追求的是執行效率、速度(固然相對)。

對比了這麼多框架,發現一個現象, 中國的程序和國外的程序員的思惟不一樣點 ,中國的程序員是看錢包點菜,外國的程序員徹底是看本身喜愛來點菜。用另一種說法來說, 中國的程序員是努力去適應環境,而國外的程序員是努力改變環境。 怎麼來講,一樣一個需求項目,中國程序員首先考慮到的是服務器支持嗎?版本支持嗎?承受得了多少訪問?配置方面的限制怎麼樣,怎麼樣運行最快,國內90%以上的PHP程序都是運行在虛擬主機上,一臺服務器數百個甚至數千個網站。而國外的程序員徹底不須要考慮這些,他們按照本身的思路來,徹底不考慮配置,他應該以爲怎麼樣一個架構思路,而不用去關心機器怎麼樣運行最快, 人來決定架構,而不是機器配置決定架構 ,有種 很文藝的感受 。

好比Laravel,他裏面每個網址就必須寫一個路由,這徹底是不考慮服務器性能,假設整個網站有3000不一樣形式的個網址,那一次性加載得多少耗費??還有國外比較流行的程序Drupal,也是徹底不計較服務器的配置,而是單純從人的思考的角度去規劃的,他將全部的內容全都想象成節點,key-val的形式,完全忽略配置的限制。我在本地機子(雙核CPU 6G內存)的電腦上運行drupal都卡得沒法形容,更別提上傳到服務器。

 

本人qq羣也有許多的技術文檔,但願能夠爲你提供一些幫助(非技術的勿加)。

QQ羣:   281442983 (點擊連接加入羣:http://jq.qq.com/?_wv=1027&k=29LoD19)    QQ:1542385235

 

個人淘寶店,能夠進去逛逛噢:https://shop108912636.taobao.com/index.htm?spm=2013.1.w5001-7867000954.3.1d29318dPlLar7&scene=taobao_shop

相關文章
相關標籤/搜索