在了解一个新的php框架,首先关心的是yaf的性能,其次才是安全等等要素,php各种各样的框架,性能也不一样.目前使用的yii和ci性能还不错,了解yaf之后,发现他们性能差的十万八千里. 今天就来聊聊我yaf我认为的优点和缺点。
1.1. Yaf的特点
在和其他用PHP写的PHP框架来比的话, Yaf就是剑的第二层境界. 框架不在你手中, 而在PHP的”心”中.
目前PHP的框架层出不穷, 其中不乏很多优秀的框架, 比如Zend官方支持的Zend Framework, Yii, ci等等. 但在这繁多的框架也就造成了公司内多种框架的业务产品. 这些框架之间的不同, 也就导致了多种版本的类库, 框架, 约定, 规范,,,,
那么, 为什么现在开源社区没有一个成熟的用PHP扩展开发的框架呢?
用PHP扩展写PHP框架的难点
- 难于开发. 要完成一个PHP扩展的PHP框架, 需要作者有C背景, 有PHP扩展开发背景, 更要有PHP框架的设计经验.
- 目标用户群小. 现在国内很多中小型站都是使用虚拟主机, 并不能随意的给PHP添加扩展, 所以这些大部分的中小型企业, 个人博客的用户就无法使用.
- 维护成本高. 要维护PHP扩展, 不仅仅需要精通于C的开发和调试, 更要精通于Zend API, 并且升级维护的周期也会很长.
那既然这样, 为什么还要用PHP扩展来开发框架呢, 或者说, 这可行么?
用PHP扩展写PHP框架的可行性
- 扩展逻辑相对比较稳定, 一般不易变化. 把它们抽象出来, 用扩展实现, 不会带来额外的维护负担.
- 框架逻辑复杂, 自检耗时耗内存都比较可观, 而如果用扩展来实现, 就能大幅减少这部分对资源的消耗.
1.2. Yaf的优点
- 用C语言开发的PHP框架, 相比原生的PHP, 几乎不会带来额外的性能开销.
- 所有的框架类, 不需要编译, 在PHP启动的时候加载, 并常驻内存.
- 更短的内存周转周期, 提高内存利用率, 降低内存占用率.
- 灵巧的自动加载. 支持全局和局部两种加载规则, 方便类库共享.
- 高性能的视图引擎.
- 高度灵活可扩展的框架, 支持自定义视图引擎, 支持插件, 支持自定义路由等等.
- 内建多种路由, 可以兼容目前常见的各种路由协议.
- 强大而又高度灵活的配置文件支持. 并支持缓存配置文件, 避免复杂的配置结构带来的性能损失.
- 在框架本身,对危险的操作习惯做了禁止.
- 更快的执行速度, 更少的内存占用.
其实, 来点简单的,我认为yaf最大的有点是性能,这不是一般的快,性能比其他php框架快上十几倍,和原生的php相差不是非常多。缺点也很明显,毕竟是C的扩展,如果程序有漏洞,作者未及时更新,使用者在不懂C的情况下,只能看着网站受辱或者祈祷,或者关闭网站.