1、創建鉤子行為
我們自己定義的標簽位可以直接放在ThinkBehaviors中,也可以放在應用目錄中,比如說Home模塊下,新建一個Behaviors的文件夾,在文件夾內新建:
注:需要帶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