最近在学习yii2的过程中,在网上看到很多关于yii,thinkphp,laravel等框架的对比,每个人对于框架的评论有褒有贬,喜欢的赞叹不已,不喜欢的各种吐槽。搞得我有点觉得学习yii是浪费时间的行为,但是我觉得一个框架如此流行肯定有它自身的优秀之处的,所以在网上找了一些关于yii的评价之类的,梳理一下。
yii的手册不是手册,是类库说明,有对象编程基础的人看,毫无问题,但是如果你只学过php、asp这些,可能短时间很难看懂他的文档,这一点上TP完爆YII。
但是YII的GII脚手架功能,完爆TP的半自动化,他可以自动生成分组、模型、CURD页面及逻辑,你只要在数据库模型里把外键指定好甚至还能为你自动生成模型关联。
YII的关联才叫关联,TP的关联,在某些情况下不够好,比如,TP的关联模型出一个userinfo字段,这个字段存储的是tbl_userinfo表里的某个数据,通常这个时候TP只能显示这个表里已有的数据,但是如果这个表也关联了别的表,那么YII可以读取关联数据的关联数据的关联数据。
1.从开发效率上来说,YII明显更胜一筹
2.但是从入门难度上来说,TP更胜一筹,文档也是tp更好。
3.从支持来说,YII的扩展要更多,因为国外也有一拨人在开发,毕竟他在国外也算是主流框架之一。而tp的大部分扩展靠的是官方。
4.tp的定位可能是轻量级的快速开发,yii可能是中小量级的高效开发。两者定位上可能有所区别。
5.有很多大站、高并发的站是用yii做的,导致在名声上,yii听上去比tp高大上,事实上初学者也不可能去做大项目。
6、Yii 框架的代码风格上于net比较接近,可以很方便的阅读php代码,上手快。
7、Yii 的框架对扩展支持相当高,很方便扩展,
8、很重要的性能,Yii 的性能相对优秀,而且属于轻量级框架。spl_autoload_register 预注册,按需载入文件等对性能都有很大提高。
8、modules 设计是一个很优秀的东西,他理论上可以无限嵌套,当然不建议嵌套超过三层。
9、widget 窗口小部件的应用,可以更加方便的构造通用模块。
10、其实集成的model,以及CActiveRecord模式 包含的验证机制,都是很好的东西,但是约束性也相对强一些。
11、Yii框架封装了各种缓存方式,让你只需要调用统一的方法就可以在不同的缓存中切换。
以上是从网上知乎看到的一些评价,差评也有,但此处不列出了,因为担心看多了自己会失去继续学习的动力。总体来说,yii还是有蛮多可取之处的,不过实际好不好用,还需要学习和实践才能发现。