php钩子配置,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.'
';
\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 行为扩展 钩子与插件的实现相关推荐
- tp3 php钩子函数,thinkphp模型事件(钩子函数:模型中在增删改等操作前后自动执行的事件)...
thinkphp模型事件(钩子函数:模型中在增删改等操作前后自动执行的事件) 一.总结 1.通过模型事件(钩子函数),可以在插入更新删除等前后执行一些特定的功能 2.模型事件是写在模型里面的,控制器中 ...
- php钩子函数示例,PHP中钩子函数的实现与认识
假如有这么一段程序: function fun(){ fun1(); fun2(); } 首先程序执行完fun1()之后执行fun2()然后fun()结束. 但是,假如我们想对函数做一些变化.比如说, ...
- 用Nginx如何配置运行无扩展名PHP文件或非.PHP扩展名文件
用Nginx如何配置运行无扩展名PHP文件或非.PHP扩展名文件 使用Apache + PHP 很容易做到运行无扩展名的PHP文件. 在Nginx中能做到吗?是可以的. 只需将nginx.conf文件 ...
- Spring Boot—SpringMVC自动配置原理以及扩展和全面接管SpringMVC
文章目录 1.以下是SpringBoot对SpringMVC的默认配置 2.扩展SpringMVC 3.全面接管SpringMVC: 5.如何修改SpringBoot的默认配置 Spring MVC ...
- vue路由跳转子组件_vue-router之路由钩子(组件内路由钩子必须在路由组件调用,子组件没用)...
模式 vue-router中的模式选项主要在router实例化的时候进行定义的,如下 const router = new VueRouter({ mode: 'history', // 两种类型hi ...
- C语言回调函数 钩子函数,回调函数和钩子函数的说明
回调函数:数据结构 回调函数是应用程序提供给Windows系统DLL或其它DLL调用的函数,通常用于截获消息.获取系统信息或处理异步事件.应用程序把回调函数的地址指针告诉DLL,而DLL在适当的时候会 ...
- polybase配置 sql_在 Windows 上配置 PolyBase 横向扩展组
在 Windows 上配置 PolyBase 横向扩展组Configure PolyBase scale-out groups on Windows 04/23/2019 本文内容 适用于:Appli ...
- 360 nginx+php,nginx下配置thinkphp文件的方法
在上篇文章给大家介绍了在Nginx上部署ThinkPHP项目教程,今天给大家介绍nginx下thinkphp的配置,具体详解如下: ## domain redirect #if ($host != & ...
- c语言中的钩子函数,回调函数以及钩子函数的概念
钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统.每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权.这时钩子函数即可以加工处理(改变)该消息,也可 ...
- Istio 1.12 引入 Wasm 插件配置 API 以扩展 Istio 生态
作者:胡渐飞,Tetrate 工程师 Istio 中新的 WebAssembly 基础设施使其能够轻松地将额外的功能注入网格部署中. 经过三年的努力,Istio 现在有了一个强大的扩展机制,可以将自 ...
最新文章
- 终于搞懂了sleep/wait/notify/notifyAll
- python学习笔记3-循环1
- OpenMP入门教程(一)hello world
- 腾讯:将收购Riot Games多数股权
- 将fork出来的分支与原项目合并
- WebAPI(part1)--API及DOM
- SAP UI5 return sap.ui.view的实现
- 所谓工作能力强,就看这5件事
- python提取列表中文本_python提取图像的名字*.jpg到txt文本的方法
- html ios音乐自动播放muted,video下autoplay属性无效的解决方法(添加muted属性)
- RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is Fal
- 软件工程经济学知识点总结
- 增强光学系统设计 | Zemax 全新 22.2 版本产品现已发布!
- 易基因|干货:m6A RNA甲基化MeRIP-seq测序分析实验全流程解析
- 一元云购系统对接短信功能图文教程—【V4版】
- 智能制造运筹优化_机械类(智能制造与智能装备)之工业工程专业
- linux权限 rwxr xr x,Linux 中的-rwxr-xr-x权限代表什么意思
- jquerymobile-16 select menu
- filco蓝牙不好用_filco minila air的蓝牙连接稳定吗?
- Linux查看用户登录的历史记录
热门文章
- 《超级搭讪学》— 综合素质提升书籍
- python3-基础2
- SqlSession介绍
- [bzoj3670] [NOI2014] [lg2375] 动物园
- swift 闭包简写实际参数名$0、$1等理解
- java多线程下如何调用一个共同的内存单元(调用同一个对象)
- 沟通与设计讨论总结:设计师不能不知道的10个沟通秘诀
- h3c,nat网络地址转换
- c语言static的用法_一文轻松掌握,单片机中C语言的数据存储与程序编写
- 基于Cocos2d-x开发guardCarrot--7 《保卫萝卜2》关卡选择页面开发