浅析Thinkphp3.0的行为扩展模式

Thinkphp3.0正式版发布也有一段时间..之前用过1.X 2.X 

3.0版还没有用过,最近有空去自己看了下官方的文档,并且研究了一下3.0的源码。

对框架里面的行为扩展模式很感兴趣于是就自己浅显的分析了一下。

TP3.0的核心框架里采用行为扩展模式主要是源于Aspect Oriented Programming(AOP),即面向切向的编程。

这样用户可以在不改变核心框架代码的情况下,通过自定义的行为扩展来自行组装和扩展框架的功能。

听起来似乎很玄乎也不太好理解.其实原理很简单。

1、首先 预定义一组行为扩展标签

例如 app_init ,app_begin 标签名称一般对应其含义,这里表示应用初始化和应用开始

2、为每个行为扩展标签定义一组行为类

例如 

'app_begin'=>array(

        'ReadHtmlCache', // 读取静态缓存

    ),

其中ReadHtmlCache 就是行为类的类名

3、在框架中,指定的代码片段处标记行为扩展标签.

例如 下面一段代码是应用开始的代码,那么在该段代码之前就通过tag函数来标记定义的行为扩展标签

tag('app_begin')

//..应用开始的代码...

上面三步就是行为扩展全部模式的全部了..原来很简单吧..

其核心就在于tag函数,个人理解有点类似JS里面的事件派发.

先定义好事件函数,然后执行到某个代码段就派发相应的事件。

这里就是先定义好对应的行为类,然后通过标记行为标签的方式去执行指定的行为类.

这样整个核心框架里很多功能就是通过不同的行为组装起来的.当需要定制框架时只需要

增加或者修改行为类,或者配置相应的行为扩展标签即可.

如果还是没办法理解那么去看看tag函数的源代码就可以明白究竟是怎么回事了.

转载于:https://my.oschina.net/jiuxiaoyao/blog/76576

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值