关于thinkphp钩子的简单运用

关于thinkphp钩子的简单运用

thinkphp在推出了Onethink,在开发中提供给你一个挂载点,我们可以进行插件开发,开发完成后,我们将其挂载到 挂载点上,会自动调用执行;
先简单的了解下钩子,
假如有如下函数

 function fun(){
     funA();
     funB();
 }

fun函数正常的执行顺序,肯定是执行完funA,然后执行funB,然后fun函数就结束了。但是,假如我们想对函数做一些变化。比如说,fun是一个解析函数,我们希望后期可以提供丰富的解析函数,而究竟用哪个函数解析,我们希望在配置文件中配置。这个时候就可以发挥钩子的力量了。

我们可以在function fun(){}
中加入一个挂钩点H,然后再执行H这个函数之前,将钩子函数配置好,我么就可以根据需要来解析了。

OneThink里可以快速创建个插件

QQ截图20131011161431

选择实现钩子的方法:

QQ截图20131011161543

这里选择documentDetailAfter; 意思是在文章结束后添加什么内容~

点击确定后,会在Addons 下生成一个文件。这里直接用的Example,生成的Example文件;

QQ截图20131011161832

 

Example里会生成两个文件时config.php 和ExampleAddon.class.php 两个文件。

QQ截图20131012102014

 

//实现的documentDetailAfter钩子方法


//实现的documentDetailAfter钩子方法
 public function documentDetailAfter($param){
 //echo "hello word!";
 $aa = $this->getConfig();
 $this->assign("aaaa",$aa);
 $this->display();
 }

只需在该方法里进行操作,映射值,在Article文件里,就可以直接输出值。、

用$aa = $this->getConfig();可以直接获得配置文件里设置的值

QQ截图20131012102359

QQ截图20131012102430

 

 

最后的效果为:在文章的末尾输出你添加的内容

QQ截图20131012102519

 

 

 

 

发表评论

Close Menu