初识 Yaf

初识 Yaf

前言:PHP 框架

PHP 开发中难免会接触到框架,现在的框架非常多,诸如 ThinkPHP、Yii…… 层出不穷

框架主要是用于方便开发,但是同时也有一些问题日益彰显出来:

  • 框架功能丰富灵活,但是会拖慢程序的运行速度

  • 框架往往会被修改,来适应自己的业务需求

  • 框架更新带来的新功能往往 “想用又不想改”

  • 框架代码质量、代码风格无法保证

这也就造成了一些问题:功能和效率的冲突、升级的困难

Yaf 简介

Yaf 正是这样一个背景下出现的。它使用 C 语言编写,只有简单的 MVC、Loader 等常见的功能。

所以说,Yaf 主要的思想是:简单可依赖

Yaf 和常见的 MVC 框架很相似:一个index.php作为入口、通过路由器分发到不同的controllers,目录结构也很类似:

+ public
  |- index.php //入口文件
  |- .htaccess //重写规则    
  |+ static
+ conf
  |- application.ini //配置文件   
+ application
  |+ controllers
     |- Index.php //默认控制器
  |+ views    
     |+ index   //控制器
        |- index.phtml //默认视图
  |+ modules //其他模块
  |+ library //本地类库
  |+ models  //model目录
  |+ plugins //插件目录

运行流程也和常见的 MVC 框架相似:

运行流程

可见,Yaf 的学习成本是很低的

关于 Yaf 的更多信息,大家可以参考官方文档

学习 Yaf 的一点建议

学习 Yaf 之前,建议先熟悉何为 MVC、何为路由,因为 Yaf 并不会介绍这些很基础的知识。之后搞清楚流程,再从简到难的进行开发

Yaf 在很多时候只是作为一个 “地基” 在使用。你完全可以将 Yaf 再 “封装” 一次来适应你的业务需求,使用 Yaf 并不意味着你的框架就是如此 “简陋”

选择 Yaf

为什么推荐 Yaf?最大的原因,就是因为 Yaf 使用 C 语言编写,可以极大地提高运行效率,同时也不失灵活性

但是这并不意味着 Yaf 就是最好的、其他框架都是渣渣。框架各有各的优缺点,得看实际需求。一般开发我们并不介意到底是使用 Yii,还是 ThinkPHP,或者 Zend Framework、CodeIgniter。因为他们虽然实现方式不一样、命名方式不一样、调用方式不一样,但是功能都大同小异。在比较注重性能的场合下,那么我们一般就会抛弃 Zend Framework 这种 “臃肿” 的框架,而选择 Yaf 这类简单但是高效率的框架

Yaf 的简单并不意味着麻烦,也不是因为鸟哥没有这个实力或者没有这个时间,而是因为不能把过多功能集成到一个扩展形式出现的框架中。像百度、新浪这般公司尚且可以好好的使用 Yaf,何况其他公司呢?

附:相关 PPT 密码:TSqv