php钩子函数示例,Thinkphp5.1钩子与行为的示例

本文通过实例详解ThinkPHP5.1中行为类(Behaviors)和钩子(Hooks)的使用方法,包括如何定义行为函数、如何在控制器中应用行为,并展示了如何通过`Hook`类实现自定义钩子的触发和监听。适合初学者理解并实践ThinkPHP的高级功能。
摘要由CSDN通过智能技术生成

看了ThinkPHP5.1完全开发手册,关于钩子和行为的介绍,不是太懂,特别是不知道怎么应用。现在复制网上的例子如下,应该就很好理解了。

如果不明白,可以查看来源网址的介绍。

示例:

下面的例子针对是行为类中只拥有一个行为方法。

# application\test\behavior\BehaviorTest.php

namespace app\test\behavior;

class BehaviorTest

{

public function portal($params) {// 注意,portal函数中的参数自定义,在修改了之后,run方法名就要改为你所定义的了。

echo $params['name']."钩子执行了方法"."
";

}

}

# application\common.php

// 应用公共文件

use think\Hook;

use think\App;

$hook = new Hook(new App());

$hook->portal('portal'); // 在应用公共文件中修改行为的入口方法run改为portal

# application\test\controller\Index.php

namespace app\test\controller;

use think\facade\Hook;

class Index

{

public function index()

{

echo 'start'."
";

// 在触发钩子之前,绑定行为到指定钩子

Hook::add('test_1','app\\test\\behavior\\BehaviorTest');

Hook::add('test_2','app\\test\\behavior\\BehaviorTest');

// 调用设置了钩子的函数来触发钩子,进行测试

$this->test_1();

$this->test_2();

}

public function test_1() {

// 设置钩子test_1

Hook::listen('test_1',['name'=>'test_1']);

}

public function test_2() {

// 设置钩子test_2

Hook::listen('test_2',['name'=>'test_2']);

}

}

查看来源网址可以学到更多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值