在熟悉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)}

结果:

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

我是插件看到了吗?

php钩子配置,thinkphp 行为扩展 钩子与插件的实现相关推荐

  1. tp3 php钩子函数,thinkphp模型事件(钩子函数:模型中在增删改等操作前后自动执行的事件)...

    thinkphp模型事件(钩子函数:模型中在增删改等操作前后自动执行的事件) 一.总结 1.通过模型事件(钩子函数),可以在插入更新删除等前后执行一些特定的功能 2.模型事件是写在模型里面的,控制器中 ...

  2. php钩子函数示例,PHP中钩子函数的实现与认识

    假如有这么一段程序: function fun(){ fun1(); fun2(); } 首先程序执行完fun1()之后执行fun2()然后fun()结束. 但是,假如我们想对函数做一些变化.比如说, ...

  3. 用Nginx如何配置运行无扩展名PHP文件或非.PHP扩展名文件

    用Nginx如何配置运行无扩展名PHP文件或非.PHP扩展名文件 使用Apache + PHP 很容易做到运行无扩展名的PHP文件. 在Nginx中能做到吗?是可以的. 只需将nginx.conf文件 ...

  4. Spring Boot—SpringMVC自动配置原理以及扩展和全面接管SpringMVC

    文章目录 1.以下是SpringBoot对SpringMVC的默认配置 2.扩展SpringMVC 3.全面接管SpringMVC: 5.如何修改SpringBoot的默认配置 Spring MVC ...

  5. vue路由跳转子组件_vue-router之路由钩子(组件内路由钩子必须在路由组件调用,子组件没用)...

    模式 vue-router中的模式选项主要在router实例化的时候进行定义的,如下 const router = new VueRouter({ mode: 'history', // 两种类型hi ...

  6. C语言回调函数 钩子函数,回调函数和钩子函数的说明

    回调函数:数据结构 回调函数是应用程序提供给Windows系统DLL或其它DLL调用的函数,通常用于截获消息.获取系统信息或处理异步事件.应用程序把回调函数的地址指针告诉DLL,而DLL在适当的时候会 ...

  7. polybase配置 sql_在 Windows 上配置 PolyBase 横向扩展组

    在 Windows 上配置 PolyBase 横向扩展组Configure PolyBase scale-out groups on Windows 04/23/2019 本文内容 适用于:Appli ...

  8. 360 nginx+php,nginx下配置thinkphp文件的方法

    在上篇文章给大家介绍了在Nginx上部署ThinkPHP项目教程,今天给大家介绍nginx下thinkphp的配置,具体详解如下: ## domain redirect #if ($host != & ...

  9. c语言中的钩子函数,回调函数以及钩子函数的概念

    钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统.每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权.这时钩子函数即可以加工处理(改变)该消息,也可 ...

  10. Istio 1.12 引入 Wasm 插件配置 API 以扩展 Istio 生态

    作者:胡渐飞,Tetrate  工程师 Istio 中新的 WebAssembly 基础设施使其能够轻松地将额外的功能注入网格部署中. 经过三年的努力,Istio 现在有了一个强大的扩展机制,可以将自 ...

最新文章

  1. 终于搞懂了sleep/wait/notify/notifyAll
  2. python学习笔记3-循环1
  3. OpenMP入门教程(一)hello world
  4. 腾讯:将收购Riot Games多数股权
  5. 将fork出来的分支与原项目合并
  6. WebAPI(part1)--API及DOM
  7. SAP UI5 return sap.ui.view的实现
  8. 所谓工作能力强,就看这5件事
  9. python提取列表中文本_python提取图像的名字*.jpg到txt文本的方法
  10. html ios音乐自动播放muted,video下autoplay属性无效的解决方法(添加muted属性)
  11. RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is Fal
  12. 软件工程经济学知识点总结
  13. 增强光学系统设计 | Zemax 全新 22.2 版本产品现已发布!
  14. 易基因|干货:m6A RNA甲基化MeRIP-seq测序分析实验全流程解析
  15. 一元云购系统对接短信功能图文教程—【V4版】
  16. 智能制造运筹优化_机械类(智能制造与智能装备)之工业工程专业
  17. linux权限 rwxr xr x,Linux 中的-rwxr-xr-x权限代表什么意思
  18. jquerymobile-16 select menu
  19. filco蓝牙不好用_filco minila air的蓝牙连接稳定吗?
  20. Linux查看用户登录的历史记录

热门文章

  1. 《超级搭讪学》— 综合素质提升书籍
  2. python3-基础2
  3. SqlSession介绍
  4. [bzoj3670] [NOI2014] [lg2375] 动物园
  5. swift 闭包简写实际参数名$0、$1等理解
  6. java多线程下如何调用一个共同的内存单元(调用同一个对象)
  7. 沟通与设计讨论总结:设计师不能不知道的10个沟通秘诀
  8. h3c,nat网络地址转换
  9. c语言static的用法_一文轻松掌握,单片机中C语言的数据存储与程序编写
  10. 基于Cocos2d-x开发guardCarrot--7 《保卫萝卜2》关卡选择页面开发