ThinkPHP CBD模式中 自定义行为
来源:互联网 发布:测量长宽高的软件 编辑:程序博客网 时间:2024/04/29 09:38
在ThinkPHP 3.X中加入了CBD模式,阅读了一下官方的文档之后,感觉这个CBD模式中的B(Behavior),官方的解释是这样的:
行为(Behavior)是ThinkPHP扩展机制中比较关键的一项扩展,行为既可以独立调用,也可以绑定到某个标签(位)中进行侦听。
而我对于这个的理解,其实就是一种事件的侦听,当我们使用行为这个动作的时候,我们就可以在thinkPHP中任何的地方调用;官方其实已经有写好的一些行为,而这些行为的文件就在 ThinkPHP/Library/Behavior文件夹下面。当我们要使用这些行为的时候,有两个添加侦听的方法。
使用functions.php中的tag(‘标签’,’变量’)
tag('标签',$变量);
或者是使用
Hook::listen('标签',$变量);
调用后,定义好的行为就会执行了;而如果我们想自定义行为那应该怎样操作呢?
1:首先我们要先创建一个新的类,例如TestBehavior.class.php,当然囖我们也需要按照thinkPHP中的文件命名规则来进行命名
2:类创建好之后,我们还需要在这个类中创建一个run的方法(必须的)
class TestBehavior{ // 行为扩展的执行入口必须是run public function run($params){ echo 'RUNTEST BEHAVIOR '.$params; }}
3:然后我们还需要为这个行为注册一个行为,注册行为的文件为ThinkPHP->common.php在这个文件里面我们可以看到一些官方已经注册号的行为
// 行为扩展定义 'tags' => array( 'app_init' => array( 'Behavior\BuildLiteBehavior', // 生成运行Lite文件 ), 'app_begin' => array( 'Behavior\ReadHtmlCacheBehavior', // 读取静态缓存 ), 'app_end' => array( 'Behavior\ShowPageTraceBehavior', // 页面Trace显示 ), 'view_parse' => array( 'Behavior\ParseTemplateBehavior', // 模板解析 支持PHP、内置模板引擎和第三方模板引擎 ), 'template_filter'=> array( 'Behavior\ContentReplaceBehavior', // 模板输出替换 ), 'view_filter' => array( 'Behavior\WriteHtmlCacheBehavior', // 写入静态缓存 ), 'test' => array( 'Behavior\TestBehavior', // 自定义行为 ), ),
到此整个行为就已经注册好了,当我们在项目中调用tags(‘test’,
0 0
- ThinkPHP CBD模式中 自定义行为
- ThinkPHP教程--15--CBD模式
- 理解ThinkPHP中的CBD“核心+行为+驱动”中的行为 Behavior
- ThinkPHP 行为
- thinkPHP中debug模式
- FCKEditor中增加自定义行为
- ThinkPHP中自定义目录结构
- Erlang自定义gen_container行为模式开发
- erlang 使用callback自定义行为模式
- ThinkPHP 中实现 Rewrite 模式
- ThinkPHP 中实现 Rewrite 模式
- ThinkPHP 中实现 Rewrite 模式
- ThinkPHP 中实现 Rewrite 模式
- thinkphp中使用cli模式
- thinkphp 之 行为扩展
- thinkphp 行为扩展 Behavior
- 嵌入式 Linux 中自定义 reboot / poweroff 行为
- 解释器模式--自定义语言翻译机(行为模式03)
- zookeeper内部实现与功能总结
- error: libxml/xmlversion.h: No such file or directory
- 第9周项目1-猴子选大王(数组版)
- Java集合框架
- 微信订阅号开发学习Wod
- ThinkPHP CBD模式中 自定义行为
- Struts2 配置xml文件
- Nmap比较简洁明了的用法
- 使浏览器打开后,默认以手机浏览器的方式打开网页
- jxl 与poi 区别
- 前端进阶之路:如何高质量完成产品需求开发
- c++ explicit作用:
- MySQL建表规范与常见问题
- mysql 连接超时