這是一個創(chuàng)建于 673 天前的主題,其中的信息可能已經(jīng)有所發(fā)展或是發(fā)生改變。
首先說下輕量經(jīng)的框架
thinkphp和ci是我使用的過的兩個輕量級框架,但這兩個框架缺點都很明顯,就是簡陋, 這兩個框架的bug都很多,我自己都碰到不少。tp是我剛畢業(yè)時用的,用了兩年,也和tp的作者一起工作過,算是深度用戶了。 1.tp和ci的開發(fā)和測試估計都沒有在nginx下測試過,我在nginx跑,ci的路由有bug。 2.ci還有個明顯的設計問題,而且竟然存在了很久,那就是在 index.php里面,當是production環(huán)境就 會關閉錯誤信息error_reporting(-1);這個錯誤一直存在了很久,最近才被fixed,真是奇怪這么顯明的問題,竟然存在這么久。 3.tp和ci都只能做小項目,對多人合作方面,測試方面都考慮的很少。 4.開發(fā)過還遇到過若干小bug,這里就列舉了,有些問題記不太清了。 5.這兩個框架的中文文檔都做的是一級棒。 再說說yii框架吧,yii框架最讓我叫覺的我就想就是它的gii吧,分分鐘做出個簡單的后面管理demo, 不過我吐槽的就是這個,gii生成的代碼使用的是widget,這個widget把view層和數(shù)據(jù)層緊緊的包裹在一起,不只是前端開發(fā)人員修改困難,就是后端開發(fā)也要查半天文檔了才能修改。 當時發(fā)現(xiàn)好不容易修改好一個,下一個看似簡單的需求,又得查半天文檔才能修改好。 舉個例子。列表頁面一般都是zii.widgets.grid.CGridView這個widget,當你對生成的代碼暗自高興的時間,一個需求來了,列表中的某一列的label需要動態(tài)顯示。但是你看代碼,zii的label是死的,不能寫php代碼,為了這個需要我只能改了框架里的CGridView,yii里面的代碼大量使用了eval,所以在view層寫代碼會很難維護。類似這種 'url' => 'Yii::app()->createUrl("topic/create", array("id"=>$data->id,"type"=>1, "rtype"=>0))',代碼會大量充斥在view層。當在大量細小的需要過來時,我現(xiàn)在當初使用gii省下的時間都被gii收回去了, 最后只能回歸傳統(tǒng)的foreach 出列表頁。 yii還有問題就是代碼風格混亂,有的地方縮進8個字符,有的4個, yii2在這方面已經(jīng)改正了。 我心中的理想的開發(fā)大中型項目的框架是這樣的 1. 代碼風格在PSR-2以上。 2. 框架本身是低耦合的,并且用框架寫的業(yè)務代碼也是代耦合的。 3. 在console下也正常運行。 4. 友好的支持php_unit,要友好的支持php_unit,上面的2,3是必須的,框架本身也有做單元測試。 5. 一些基本的功能模塊以bundle或module的形式提供。
|
|