ThinkPHP
- 易于上手,有丰富的中文文档,学习成本低,社区活跃度高。
- 框架的兼容性较强,php4和php5完全兼容,完全支持UTF8等。
- 从thinkphp3.2.2开始引入了composer包管理工具。
- 基本面向对象。
- 上手容易,但是深入学习较难。
- 适合做中小型项目。
Laravel
- 设计思想先进。
- 支持composer包管理工具,大量的第三方开源库。
- 集合了PHP比较新的特性,以及各种设计模式,IOC容器,依赖注入等。
- 文档丰富,社区活跃。
- 中间件和路由,对访问进行过滤及控制。
- 基于组件式的框架,所以比较臃肿。
Yii
- 面向对象编程。
- 支持composer包管理工具。
- 适用于大型web应用。
- 模型使用方便。
- 性能优异,功能丰富。
- 文档较少。
- 框架入门较难,需要熟练面向对象编程。
Phalcon
- 基于C扩展写的,高性能,全栈式。(鸟哥的yaf框架也是C语言写的,性能不相上下,但是yaf更新慢,功能相对少)
- 由于是以扩展的方式加载,因此其执行效率高过其他PHP框架,并且消耗更少的资源,据统计比其他框架快5倍以上,也是少数以扩展加载的PHP框架之一。
- 为什么基于C扩展写的框架快。用C实现的PHP框架比起原生框架仍有一定的性能损失,因为每个请求都需要执行额外的一些代码,这是不可避免的,但由于C扩展随PHP服务启动时就载入并常驻内存,所以相比PHP实现的框架来说,要快得多,另外,C扩展优化编译生成的机器码比PHP代码快也是重要原因。
- di机制,依赖注入,利用依赖注入的方式,实现对象之间的解耦。所以phalcon框架高度解耦。
- 框架入门比较难。
- 遇到问题文档方面,社区方面还不够全面。
- 学习成本比较高
Yaf
Yaf的优点
- 用C语言开发的PHP框架, 相比原生的PHP, 几乎不会带来额外的性能开销
- 所有的框架类, 不需要编译, 在PHP启动的时候加载, 并常驻内存
- 更短的内存周转周期, 提高内存利用率, 降低内存占用率.
- 灵巧的自动加载. 支持全局和局部两种加载规则, 方便类库共享
- 高性能的视图引擎.
- 高度灵活可扩展的框架, 支持自定义视图引擎, 支持插件, 支持自定义路由等等
- 内建多种路由, 可以兼容目前常见的各种路由协议
- 强大而又高度灵活的配置文件支持. 并支持缓存配置文件, 避免复杂的配置结构带来的性能损失
- 在框架本身,对危险的操作习惯做了禁止
- 更快的执行速度, 更少的内存占用
Yaf的缺点
- 对于没有C基础的人使用起来没有困难,但一旦出现漏洞,不懂C的童鞋只能眼睁睁看着网站被破坏直至关掉;
- 相对于其他php框架,使用yaf的资料现在还比较少;