初识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