随着PHP的发展, PHP框架层出不穷, 但到底用不用PHP框架, 还存在很大的争论, 反对者认为使用框架会降低性能, 经常举例的就是Zend Framework. 而支持者则认为,采用框架能提高开发效率, 损失点性能也是值得的.
而这些也正是公司内框架种类繁多的一个原因, 有的项目组为了性能而选择某些框架, 而另外一些项目组, 则为了更好的封装选择了另外的框架
那, 有没有俩全的办法呢? 也就是说, 有没有那么一个框架, 既不会有损性能, 又能提高开发效率呢.
Yaf, 就是为了这个目标而生的.
Yaf有着和Zend Framework相似的API, 相似的理念, 而同时又保持着对Bingo的兼容, 以此来提高开发效率, 规范开发习惯. 本着对性能的追求, Yaf把框架中不易变的部分抽象出来,采用PHP扩展实现(c语言),以此来保证性能.在作者自己做的简单测试中, Yaf和原生的PHP在同样功能下, 性能损失小于10%, 而和Zend Framework的对比中, Yaf的性能是Zend Framework的50-60倍.
与一般的PHP框架不同, Yaf以C语言编写并编译为扩展, 所有的框架类, 自动加载器, 路由器和分发循环都运行在编译后的代码中, 因此单次请求的框架开销以微秒计, 也没有需要加载的框架PHP文件. 它既适合引导成本至关重要的高流量应用, 也适合在Swoole等长生命周期的运行环境中, 为每个请求提供一个干净的分发周期.
Yaf实现了经典的MVC架构: 单一入口脚本, 支持分节的配置文件, 引导(Bootstrap)钩子, 插件系统, 六种内建的路由协议,
以及一个轻量级的纯PHP模板视图引擎(Yaf_View_Simple).
![]() |
注意 |
|---|---|
| Yaf的master分支支持PHP 7.0及以上版本, 另有php5分支支持PHP 5.2及以上版本. |