thinkphp5的鉤子怎么用

thinkphp5的鉤子怎么用

1、創建鉤子行為

我們自己定義的標簽位可以直接放在ThinkBehaviors中,也可以放在應用目錄中,比如說Home模塊下,新建一個Behaviors的文件夾,在文件夾內新建:

標簽名+Behavior.class.php

注:需要帶Behavior的原因,見代碼:??

立即學習PHP免費學習筆記(深入)”;

static?public?function?exec($name,?$tag,&$params=NULL)?{ ????if('Behavior'?==?substr($name,-8)?){ ??????//?行為擴展必須用run入口方法 ??????$tag??=??'run'; ????} ????$addon??=?new?$name(); ????return?$addon->$tag($params); }

相關推薦:《ThinkPHP教程

在這里我自己自定義的標簽名是My??

namespace?Behavior; use?ThinkBehavior; class?MyBehavior?extends?Behavior { ??public?function?run(&$arg){ ????echo?'thinkphp?中的'.$arg['name'].'功能,'.$arg['value'].'中...'; ??} }

注意類名大小寫

2、將鉤子添加進鉤子集中

方法一(手動注冊):直接在控制器中添加:

Hook::add('addd','BehavioradBehavior');

方法二(自動注冊):

在Conf文件夾里面(完整路徑D: hinkpplicationHomeConf ags.php,當然這是我的情況)tags.php的內容:?

return?array( //'action_begin'=>array('HomeBehaviorstest','HomeBehaviorstest'), ?//一個標簽位可以有多個行為,使用數組即可。 ?//?如果是3.2.1版本?則需要改成 ?//?'action_begin'=>array('HomeBehaviorstestBehavior','HomeBehaviorstestBehavior'), ?'my'=>array('BehaviorsMyBehavior') );

3、添加監聽(我這里才用模板中直接監聽使用)

此處如果報找不到hook方法,請在ThinkPHP/Common/functions.php中添加(當然也可以在其他公共文件):?

function?hook($hook,$params=?array()){ ??ThinkHook::listen($hook,$params); }

最后在模板中使用:??

{:hook('my',?array('name'=>'鉤子','value'=>'學習'))}

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享