这是一个创建于 673 天前的主题,其中的信息可能已经有所发展或是发生改变。
首先说下轻量经的框架
thinkphp和ci是我使用的过的两个轻量级框架,但这两个框架缺点都很明显,就是简陋, 这两个框架的bug都很多,我自己都碰到不少。tp是我刚毕业时用的,用了两年,也和tp的作者一起工作过,算是深度用户了。 1.tp和ci的开发和测试估计都没有在nginx下测试过,我在nginx跑,ci的路由有bug。 2.ci还有个明显的设计问题,而且竟然存在了很久,那就是在 index.php里面,当是production环境就 会关闭错误信息error_reporting(-1);这个错误一直存在了很久,最近才被fixed,真是奇怪这么显明的问题,竟然存在这么久。 3.tp和ci都只能做小项目,对多人合作方面,测试方面都考虑的很少。 4.开发过还遇到过若干小bug,这里就列举了,有些问题记不太清了。 5.这两个框架的中文文档都做的是一级棒。 再说说yii框架吧,yii框架最让我叫觉的我就想就是它的gii吧,分分钟做出个简单的后面管理demo, 不过我吐槽的就是这个,gii生成的代码使用的是widget,这个widget把view层和数据层紧紧的包裹在一起,不只是前端开发人员修改困难,就是后端开发也要查半天文档了才能修改。 当时发现好不容易修改好一个,下一个看似简单的需求,又得查半天文档才能修改好。 举个例子。列表页面一般都是zii.widgets.grid.CGridView这个widget,当你对生成的代码暗自高兴的时间,一个需求来了,列表中的某一列的label需要动态显示。但是你看代码,zii的label是死的,不能写php代码,为了这个需要我只能改了框架里的CGridView,yii里面的代码大量使用了eval,所以在view层写代码会很难维护。类似这种 'url' => 'Yii::app()->createUrl("topic/create", array("id"=>$data->id,"type"=>1, "rtype"=>0))',代码会大量充斥在view层。当在大量细小的需要过来时,我现在当初使用gii省下的时间都被gii收回去了, 最后只能回归传统的foreach 出列表页。 yii还有问题就是代码风格混乱,有的地方缩进8个字符,有的4个, yii2在这方面已经改正了。 我心中的理想的开发大中型项目的框架是这样的 1. 代码风格在PSR-2以上。 2. 框架本身是低耦合的,并且用框架写的业务代码也是代耦合的。 3. 在console下也正常运行。 4. 友好的支持php_unit,要友好的支持php_unit,上面的2,3是必须的,框架本身也有做单元测试。 5. 一些基本的功能模块以bundle或module的形式提供。
|
|