在熟悉onthink程序的时候,看到后台有钩子和插件的管理界面。很感兴趣,之前就对行为不怎么理解和使用,借着这次机会好好的研究下。
行为(Behavior)是一个比较抽象的概念,类似于AOP编程中的“切面”的概念,给某一个切面绑定相关行为就成了一种类AOP编程的思想。
在开始之前我们看看它是怎么个流程?
1、注册行为。
2、具体行为的操作。
3、行为里面如何注册插件。
4、视图的调用。
按照官网的实例,自己亲生的实践一下,下面是我的实践代码。
配置文件:Application/common/conf/config.php
return array(
//'配置项'=>'配置值'
'AUTOLOAD_NAMESPACE' => array('Addons' => './Addons/'), //扩展模块列表
);
行为的注册:Application/Common/Conf/tags.php
return array(
'Test' => array('Common\\Behavior\\TestHookBehavior'),
);
TestHookBehavior文件代码:namespace Common\Behavior;
use Think\Behavior;
use Think\Hook;
class TestHookBehavior extends Behavior {
public function run(&$param) {
echo '测试钩子,我接受到的数据是' . $param.'
';
\Think\Hook::add('Chajian', 'Addons\\Chajian\\ChajianAddon');
}
}
插件:
Addons/Chajian/ChajianAddon.class.phpnamespace Addons\Chajian;
use THink\Controller;
class ChajianAddon extends Controller {
function Chajian() {
echo '我是插件看到了吗?
';
}
}
视图调用:
Application/Home/View/Index/index.html{:tag('Test',$param)}
{:tag('Chajian',$param)}
结果:
测试钩子,我接受到的数据是
我是插件看到了吗?