乐趣区

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 文件:

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

路由协议

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

本文作者:荒古
本文链接:https://haxianhe.com/2019/07/…
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!

退出移动版