吐槽下 php 几个框架,都是实际项目中用过的,欢迎有使用经验人的喷

2014-08-20 18:07:25 +08:00
 sheldondai
首先说下轻量经的框架
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的形式提供。
12946 次点击
所在节点    PHP
47 条回复
summer_charlie
2014-08-22 21:27:38 +08:00
楼主可以使用 Laravel , 开发从此如此愉快, 打下广告 -> http://phphub.org/
Actrace
2014-08-23 09:08:08 +08:00
PHP本质上已经是很优秀的框架了,不知道在这上面再套一个框架有啥意义。
顶多,就是按照个人需求把一些常用业务打包起来复用以提升类似需求的开发速度,除此之外我想不出还有其他可以优化的地方。
反倒是现有的框架,把太多细节封装起来,但是又只能应对固定的需求,实际上是批量拉低了PHP程序员的技术水平,拖延了成长时间。
有一些活,该了解的细节还是要了解的,就算在日常工作中有办法忽略那些细节用于提升效率,但是至少你在茶余饭后跟朋友们聊天的时候可以拿出些东西来侃侃~
vigoss
2014-08-23 10:35:55 +08:00
@Actrace 我不知道为什么用了框架了就不了解细节了。不想了解细节不用框架也不会了解。技术的提升和你用什么框架没关系。不用框架写带码,你难道连数据库都不封装一下?
justplaymore
2014-09-04 15:13:00 +08:00
symfony2
composer
TangMonk
2014-09-04 21:06:15 +08:00
@sheldondai 最近在研究drupal8, 随便研究了下sy2, 但是感觉好复杂的样子,搞不懂。。官网的tutorial看了之后也是一头雾水。。。
shanqiu
2014-09-06 00:57:19 +08:00
怎么没人提kohana,yii基础上发展出来的框架,感觉这个非常灵活,比tp、ci好用,没yii那么庞大,但是性能不是问题。
我现在写项目都是用kohana+bootstrap
crabRunning
2014-09-06 11:09:48 +08:00
屌炸天的initphp,不服来辩

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/129003

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX