smarty php 路由配置,Yaf框架的扩展-mvc-路由配置-模版视图smarty加载

Yaf(Yet Another Framework) (另外一种框架(自己的理解))

(摘抄)yaf优点:

1.用C语言开发的PHP框架, 相比原生的PHP, 几乎不会带来额外的性能开销.

2.所有的框架类, 不需要编译, 在PHP启动的时候加载, 并常驻内存.

3.更短的内存周转周期, 提高内存利用率, 降低内存占用率.

4.灵巧的自动加载. 支持全局和局部两种加载规则, 方便类库共享.

5.高性能的视图引擎.

6.高度灵活可扩展的框架, 支持自定义视图引擎, 支持插件, 支持自定义路由等等.

7.内建多种路由, 可以兼容目前常见的各种路由协议.

8.强大而又高度灵活的配置文件支持. 并支持缓存配置文件, 避免复杂的配置结构带来的性能损失.

9.在框架本身,对危险的操作习惯做了禁止.

10.更快的执行速度, 更少的内存占用.

如期所说一样yaf的性能确实非常的高,几乎不会带来什么额外的性能开销,是值得使用框架,下面就我自己的学习来说明下yaf相应的知识点:

1:mvc模式:

Yaf提供了最基本的mvc模式 其流程图如下:

570dd8d134760b8af9a36003d89f1a0d.png

这就是yaf全部的流程图,很清晰告诉我们yaf处理请求了流程。

2:插件

yaf提供了插件功能给我们提供了扩展的留下了空间,要定义插件就要继承Yaf_Plugin_Abstract,同时它有6个hook

触发顺序

名称

触发时机

说明

1

routerStartup

在路由之前触发

这个是7个事件中, 最早的一个. 但是一些全局自定的工作, 还是应该放在Bootstrap中去完成

2

routerShutdown

路由结束之后触发

此时路由一定正确完成, 否则这个事件不会触发

3

dispatchLoopStartup

分发循环开始之前被触发

4

preDispatch

分发之前触发

如果在一个请求处理过程中, 发生了forward, 则这个事件会被触发多次

5

postDispatch

分发结束之后触发

此时动作已经执行结束, 视图也已经渲染完成. 和preDispatch类似, 此事件也可能触发多次

6

dispatchLoopShutdown

分发循环结束之后触发

此时表示所有的业务逻辑都已经运行完成, 但是响应还没有发送

你可以在你想处理的地方加上自己的扩展,然后在路由的时候注册你的查件就可以了。

3:路由

yaf的路由已经可以满足绝大部分的功能需要,应用中路由组件是由路由和路由协议组成的,路由只有一个路由协议可以有很多,你可以根据自己的需求定义自己的路由,其中用的最多的就是Yaf_Route_Regex 正在路由 他能够完成你想要的路由下面是自己根据项目定义的路由:

925a3668300dff308647fce10a728667.png

要注意的当你要使用多modules时要在application.modules = Index ,Shop加上你自己定义的模块

同时在正则路由时要表明要路由大那个模块下面就是要指明模块名称:routes.regex_index.route.module = Shop

4:BootStarp

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

所有在Bootstrap类中定义的, 以_init开头的方法, 都会被依次调用, 而这些方法都可以接受一个Yaf_Dispatcher实例作为参数.

5:数据库

yaf没有提供关于数据库方面的继承这就需要根据自己的需要扩展自己的数据库,同时你也可以将zendframwork中的数据库类加载进来,我的数据库的目录结构是:

bb7b39dc9ee0571e140a14535e0e15b2.png

然后你就可以在继承自己的数据库扩展,提高开发效率。

6:smarty

yaf提供的视图加载不是那么好用同时为了兼容以前的项目我加入了smarty模版

在yaf中加入smary模版让人很头疼的是smarty文件的目录结构和yaf自动加载的目录不一样就会造成文件加载不到,这个问题我已经在我博客中解决了 。

yaf可以说一个最轻量级的框架,他提供你扩展空间。

这个我是我整个项目的目录结构图如下:

7ff122d314006540dfbbacc79a10c2b6.png

欢迎随时和我交流我的qq号是:511520590

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值