Yaf 框架学习

Yaf 是什么

Yaf,全称 Yet Another Framework,是一个C语言编写的、基于PHP扩展开发的PHP框架。

相比于一般的PHP框架,它更快,快到被誉为最快的PHP开发框架。

它提供了Bootstrap、路由、分发、视图、插件功能。

注:

百度的odp框架,以及我们公司的PIE框架都是基于yaf开发的。

Yaf 的优点

  • 用C语言开发的PHP框架, 相比原生的PHP, 几乎不会带来额外的性能开销.
  • 所有的框架类, 不需要编译, 在PHP启动的时候加载, 并常驻内存.
  • 更短的内存周转周期, 提高内存利用率, 降低内存占用率.
  • 灵巧的自动加载. 支持全局和局部两种加载规则, 方便类库共享.
  • 高性能的视图引擎.
  • 高度灵活可扩展的框架, 支持自定义视图引擎, 支持插件, 支持自定义路由等等.
  • 内建多种路由, 可以兼容目前常见的各种路由协议.
  • 强大而又高度灵活的配置文件支持. 并支持缓存配置文件, 避免复杂的配置结构带来的性能损失.
  • 在框架本身,对危险的操作习惯做了禁止.
  • 更快的执行速度, 更少的内存占用.

以上内容引用鸟哥的官方介绍,当然,Yaf不是一个Full-Stack的web框架,它没有对数据库操作的封装,更不用说ORM;很多人认为这是Yaf的不足,但我认为这又是Yaf的优点,这代表着一种精神,就是追求简单,追求高效,追求”简单可依赖“, 所以Yaf专注于实现最核心的功能,提供最稳定的实现。

尽管Yaf的功能有限,但Yaf是可扩展的!它提供的插件机制,可以和其它类库整合在一起。Yaf非常适合基于Yaf再扩展一套适合自己的业务层框架。总之Yaf非常适合互联网产品的开发。

流程图

Yaf提供了完善的API, 并支持Bootstrap和插件机制. 整体流程图如下:

使用 Bootstrap

Bootstrap, 也叫做引导程序. 它是Yaf提供的一个全局配置的入口, 在Bootstrap中, 你可以做很多全局自定义的工作.

注:

在PIE框架中webroot目录下各个模块对应的文件里的index.php起初始化作用,部分替代了yaf中Bootstrap文件的作用:

index.php文件:

1
2
$objApplication = Sf\Init::init();      
$objResponse = $objApplication->bootstrap()->run();

路由协议

PIE 框架中的路由协议采用默认协议,由请求url中指定要路由的app、controller、action名称。

Yaf(Yet Another Framework)用户手册