(摘抄)yaf优势: html
如期所说同样yaf的性能确实很是的高,几乎不会带来什么额外的性能开销,是值得使用框架,下面就我本身的学习来讲明下yaf相应的知识点: 数据库
1:mvc模式: 缓存
Yaf提供了最基本的mvc模式 其流程图以下: mvc
这就是yaf所有的流程图,很清晰告诉咱们yaf处理请求了流程。 app
2:插件 框架
yaf提供了插件功能给咱们提供了扩展的留下了空间,要定义插件就要继承Yaf_Plugin_Abstract,同时它有6个hook oop
触发顺序 | 名称 | 触发时机 | 说明 |
---|---|---|---|
1 | routerStartup | 在路由以前触发 | 这个是7个事件中, 最先的一个. 可是一些全局自定的工做, 仍是应该放在Bootstrap中去完成 |
2 | routerShutdown | 路由结束以后触发 | 此时路由必定正确完成, 不然这个事件不会触发 |
3 | dispatchLoopStartup | 分发循环开始以前被触发 | |
4 | preDispatch | 分发以前触发 | 若是在一个请求处理过程当中, 发生了forward, 则这个事件会被触发屡次 |
5 | postDispatch | 分发结束以后触发 | 此时动做已经执行结束, 视图也已经渲染完成. 和preDispatch相似, 此事件也可能触发屡次 |
6 | dispatchLoopShutdown | 分发循环结束以后触发 | 此时表示全部的业务逻辑都已经运行完成, 可是响应尚未发送 |
你能够在你想处理的地方加上本身的扩展,而后在路由的时候注册你的查件就能够了。 post
3:路由 性能
yaf的路由已经能够知足绝大部分的功能须要,应用中路由组件是由路由和路由协议组成的,路由只有一个路由协议能够有不少,你能够根据本身的需求定义本身的路由,其中用的最多的就是Yaf_Route_Regex 正在路由 他可以完成你想要的路由下面是本身根据项目定义的路由: 学习
要注意的当你要使用多modules时要在application.modules = Index ,Shop加上你本身定义的模块
同时在正则路由时要代表要路由大那个模块下面就是要指明模块名称:routes.regex_index.route.module = Shop
4:BootStarp
Bootstrap, 也叫作引导程序. 它是Yaf提供的一个全局配置的入口, 在Bootstrap中, 你能够作不少全局自定义的工做.
全部在Bootstrap类中定义的, 以_init开头的方法, 都会被依次调用, 而这些方法均可以接受一个Yaf_Dispatcher实例做为参数.
5:数据库
yaf没有提供关于数据库方面的继承这就须要根据本身的须要扩展本身的数据库,同时你也能够将zendframwork中的数据库类加载进来,个人数据库的目录结构是:
而后你就能够在继承本身的数据库扩展,提升开发效率。
6:smarty
yaf提供的视图加载不是那么好用同时为了兼容之前的项目我加入了smarty模版
在yaf中加入smary模版让人很头疼的是smarty文件的目录结构和yaf自动加载的目录不同就会形成文件加载不到,这个问题我已经在我博客中解决了 。
yaf能够说一个最轻量级的框架,他提供你扩展空间。
这个我是我整个项目的目录结构图以下:
欢迎随时和我交流个人qq号是:511520590