本文实例讲述了thinkphp 框架扩展之行为扩展原理与实现方法。分享给大家供大家参考,具体如下:
系统核心提供的标签位置包括下面几个(按照执行顺序排列):
app_init应用初始化标签位path_infopath_info检测标签位app_begin应用开始标签位action_name操作方法名标签位action_begin控制器开始标签位view_begin视图输出开始标签位view_par视图解析标签位template_filter模板内容解析标签位view_filter视图输出过滤标签位view_end视图输出结束标签位action_end控制器结束标签位app_end应用结束标签位在每个标签位置,可以配置多个行为定义,行为的执行顺序按照定义的顺序依次执行。除非前面的行为里面中断执行了(某些行为可能需要中断执行,例英语二如检测机器人或者非法执行行为),否则会继续下一个行为的执行。 行为定义: 通过common\conf\tags.php配置文件定义,格式如下:
<?phpreturn array( 'action_begin'=>array('home\\behaviors\\testbehavior','home\\behaviors\\test1behavior'), );
上面注册了两个行为,分别是home模块下的test和test1行为,类文件位于home模块目录下的behaviors目录,可以自定义目录。
行为必须是一个包含命名空间路径的类,如上的 h关于马的诗句ome\behaviors碧生源减肥茶有副作用吗\testbehavior 对应的类是 home/behaviors/testbehavior.class.php。
除了这些系统内置标签之外,开发人员还可以在应用中添加自己的应用标签。 比如在控制器的_initialize方法中:
\think\hook::add('action_begin','home\\behaviors\\testbehavior');//同时添加多个行为,只要将第二个参数换成数组即可。
行为类的定义,以上面的test行为为例:
<?phpnamespace home\behaviors;class testbehavior extends \think\behavior{ //行为执行入口 public function run(&$param){ }}
行为类建议继承\think\校花被behavior,必须实现run(&$param)
方法,行为是通过这个方法执行的。
行为的触发: 只要在合适的地方通过以下代码
\think\hook::listen('标签名'[,参数]);// 或者// tag('标签名'[,参数]);
当应用执行到这个地方的时候将自动触发指定标签名下的所有行为类。
isten方法可以传入并且只接受一个参数,如果需要传入多个参数,请使用数组,该参数为引用传值,所以只能传入变量。 参数可以被run(&$param)
中的$param
接收韩式短发新娘发型。
本文发布于:2023-04-08 16:30:09,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/5ce912376ccea976b8672f27bd5e138e.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:Thinkphp 框架扩展之行为扩展原理与实现方法分析.doc
本文 PDF 下载地址:Thinkphp 框架扩展之行为扩展原理与实现方法分析.pdf
留言与评论(共有 0 条评论) |