首页 » PHP笔记 » thinkphp 行为扩展 钩子与插件的实现

thinkphp 行为扩展 钩子与插件的实现

高蒙 2016/11/29 18:05 3.1k浏览 0评论 Thinkphp


在熟悉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.'<br/>';
\Think\Hook::add('Chajian', 'Addons\\Chajian\\ChajianAddon');
}
}

插件:

Addons/Chajian/ChajianAddon.class.php

namespace Addons\Chajian;
use THink\Controller;
class ChajianAddon extends Controller {
function Chajian() {
echo '我是插件看到了吗?<br/>';
}
}

视图调用:

Application/Home/View/Index/index.html

{:tag('Test',$param)}
{:tag('Chajian',$param)}

结果:

测试钩子,我接受到的数据是

我是插件看到了吗?





相关文章

我有话说

站长昵称:(*)

输入内容:

选个头像:

评论列表

    ...

    高蒙

    男, PHP程序猿

    文章

    485

    标签

    42

    热度

    10w+

    南京, 江苏, 中国

    人生要是没有理想, 那跟咸鱼有什么分别。