最近這六年來,一直使用PHP開源系統來作項目,如drupal, joomla, wordpress, magento等,雖然也有接觸過主流的框架,不過並很少。也許我會有一些偏見,我認爲簡單或中等難度項目就應該用開源CMS來完成,而不是用簡單的PHP框架,如thinkphp, ci, cakephp等。理由以下:php
常見功能CMS都有,沒有開發的價值
什麼會員功能、數據的增刪查、權限、文章管理、SEO等,這些都很是常見,常見到被開發出來的價值是零。很多主流的PHP框架連後臺都沒有提供,還必須爲開發後臺而花費時間,這無疑就是在造輪子。thinkphp在國內能夠說是用得最多了,可這些常見功能能夠下載即用的嗎?連個組件分享平臺都沒有,沒法積累開發成果,這樣比較起來,thinkphp能比CMS快捷多少?程序員
開發質量問題
用thinkphp作項目每每有兩個重要理由,一是開發順手;二是簡單,容易找人維護。但順手是個很主觀的概念,若是你只用過WINDOWS,你不會以爲VIM很順手,若是你不會五筆你不會以爲五筆很順手。同理,懂得很少的人,會以爲簡單就是順手,不會去思考迭代更新和擴展性等問題。門檻低會致使總體開發質量並不高,雖然CMS門檻也低(如joomla, wordpress),但大部分常見功能和組件是由社區維護,真正要編寫的代碼並很少,因此質量有社區來保證,而不是我的開發者。我想當老闆的都知道靠譜的開發人員不容易找,依賴社區的力量就是性價比最高的方案。好的PHPer也不可能學不會一個簡單的CMS。thinkphp
技術積累問題
thinkphp不少人用,可不多會有人交流與分享本身開發的組件,也許某些人本身能有一套本身經常使用的thinkphp組件,可只限於本身開發的項目中,並無人願意去使用別人的組件。這是技術氛圍與社區化的緣由。國內的開源一直缺乏社區化支持,因此發展得並不大。去接觸一下drupal社區,裏面都是對drupal資深的開發人員,項目從開始到UAT效率都很是高,我能斷言效率之高不是你能用thinkphp能夠達到的速度。安全
互聯網快速迭代
我是互聯網比較早的用戶了,我學PHP的時候尚未所謂的框架,因此那時候開發出一個好用的框架無疑是提升生產力最佳的方案。但如今技術的發展已經不愁沒有框架,爲了快速發展產品,更高效的開發方案勢在必行,有什麼需求都應該能夠更高效被實現出來,而且要保護安全和質量。這些要求明顯對於新手來講很難,因此有thinkphp讓新手能夠用苦力換技術差距。但這種並非開源精神,每每一直使用thinkphp的人的概念就是「我能本身開發一個,爲何要學怎麼擴展某個開源系統的組件?」,能用就好,並不接受別人的開發思路,這種觀念套在過去的生產線上,應該就叫閉門造車吧。框架
以上只是拿thinkphp作對比,並非說thinkphp很差,但國內社區化氣氛的確並不高漲,這讓咱們在PHP開發技術上不能取得市場主導地位,其實咱們一直在被老外牽着鼻子走。有再好的框架沒有社區大力支持,都很難作得大的。就算你用thinkphp用得有多好,可能某一天一個老外老闆說國外某個系統很是熱門並且穩定,就要求你使用它。你說你的thinkphp技術很牛,可人家開源系統里社區成員個個都很牛,就算你不幹也能夠在社區裏找到人維護,要你何用?wordpress
drupal這個社區化作得很好,本土化的社區都已經有很多成員了。對於PHP的學習不要止於框架,瞭解一下PHP主流產品都有那些。我去面了一個PHP程序員,問他會什麼,只會thinkphp和一點YII,對於PHP主流產品一點認知都沒有,什麼是擴展?什麼叫組件?什麼叫插件?歷來都沒接觸過,這樣還能自認爲是PHP程序員。學習