最近打算用做一个比较中型的PHP应用,想到用比应用广泛的MVC框架。
要求
1.支持命名空间
2.不支持PHP4
3.架构、性能更重要
4.长期稳定,而不是很快就会被淘汰或者解散的框架
Yii2、symfony2都太庞大,不适合。考虑到了Laravel CakePHP Kohana CI。
先说一下自己对这三款框架的看法
1) CI 2.x
官网一种放弃状态
CI框架太轻巧,很多东西都要自己做,非常陈旧
CI框架在IDE中无法进行代码跟踪,点击类名无法跳转过去
2) CakePHP 2.x
为什么非得向下兼容PHP4?弄得非得用一个蹩脚的App::use()来替代namespace!
为了兼容PHP4弄得整个架构乱七八糟
如果CakePHP放弃对PHP4的兼容,应该会有更多的人使用
3) Laravel
不支持php4,支持命名空间
网上非常多的好评,仔细看每个评测文章都是复制粘贴的感觉很枪手。
网上包括segmentfault上都有对框架的比较,但基本上是都是摘抄的转载的,而不是自己使用过后的真实体会,期待有使用过后的真实体会,而不是复制粘贴网上人云亦云的测评。
今天使用Laravel,发现文档不是官方宣传的那样丰富,而是少非常不清晰。
Route的所有方法有那些,根本就找不到这些说明。官方的文档只是几个简单的例子,根本就不详尽。
2015-6-16 补充:
再次回到这个问题,我已经一路使用了CodeIgniter、ThinkPHP 再到Yii2,开发了一些完整的项目。现在发觉 PHP 的 MVC 模式确实难以满足需求,到后来的 component,现在再到laravel的思路,难以理解,总是一直感觉在追赶,特别疲惫。
其实一开始,我走过太多的弯路,很多年以前,对于OOP都有着强烈的排斥和极端的抵触,原因就是使用了class 类会导致程序运行非常慢,究其根本是我使用的运行环境实在是太烂了,虚拟主机都不如,而且还是win。到后来MVC模式,加载的文件数目几乎是无法比拟。后来开始使用MVC框架,普通的主机已经完全无法支撑,绝大部分虚拟主机大部分都是win服务器、而且PHP最多最多PHP5.3就不错了,还有很大一批居然还在PHP5.0(虚拟主机就是只提供一个FTP用户名密码的那种)。
走过太多的弯路,一直以来总是被硬件条件、运行环境束缚思维。
laravel5.1一个空项目,或者链接数据库,取一个表的几条记录显示出来:
用 ab -t 10 -c 10 http://127.0.0.1/laravel511/public/index.php
或 ab -n100 -c100 http://127.0.0.1/laravel511/public/index.php
得出的结果 request per time: <50
而如果换slim3 或 ci3 测试,可以达到 reququest per time : 200-300
如果不用任何框架,同样测试,则可以达到:request per time : 1300
不明白这样的情况下,还要用框架吗,项目套上框架性竟然能这么低啊。
赶脚白瞎了机器硬件啊。
你的分析很多都是错的.
(1) EllisLab确实曾经想找人接盘CI, 但事实上, github上CI的更新一直没停过.
(2) cakephp 2.x只支持php 5.x, 并不支持php 4.x, 支持php 4.x的是cakephp 1.x, cakephp 2.x不用命名空间是因为命名空间是php 5.3后才有的, 而原先php社区的计划是把这些特性放到php 6里. 仅支持php 5.4的版本是cakephp 3, 马上要出正式版了. 如果你优先看中长期稳定的话, cakephp肯定是首选, 它到现在还在维护仅支持php 4.x的cakephp 1.x版的bug修正.
(3) 如果你认为yii2和symfony算大的话, Laravel你就不该考虑, 这东西是构建在大量symfony components上的, 不过大小真有那么重要么? 现在也并不是10多年前1MB空间1~2RMB的时代了, 不是么?