热门标签: 转载 JavaScript mysql 学习 php
主页> 后端 >

初次尝试行为钩子( behavior)

发布时间:2018-05-17 编辑:三石兄 标签: TP5php 热度:1091

尝试使用Tp5提供的行为来完成某些需求

使用场景

编写好api接口后,发现在其他域下访问会出现跨域的问题,便想着给接口加上header头部定义origin来解决跨域的问题,但是又觉得给每个接口都加上header太麻烦了,而且代码重复,想要在一个地方设置后,需要的所有地方都能直接执行,便想着用tp5提供的行为(behavior)来完成这个功能。

行为(介绍)

行为(Behavior)是在预先定义好的一个应用钩子(Hook)位置执行的一些操作。类似于AOP编程中的“切面”的概念,给某一个钩子绑定相关行为就成了一种类AOP编程的思想。

所以,行为通常是和某个Hook位置相关,行为的执行时间取决于行为绑定到了哪个位置上。

要执行行为,首先要在应用程序中进行行为侦听,例如:

// 在app_init位置侦听行为\think\facade\Hook::listen('app_init');

然后对某个位置进行行为绑定:

// 绑定行为到app_init位置\think\facade\Hook::add('app_init','\app\index\behavior\Test');

一个位置上如果绑定了多个行为的,按照绑定的顺序依次执行,除非遇到中断。


使用

行为的使用方法很多,我先在这里列出我的使用方法:

  1. 首先在应用文件中创建 behavior 文件夹,在文件夹下创建用来编写行为的PHP文件


  2. 在创建好的PHP文件中编写行为事件(我这里写的是添加header头部

  3. 在应用文件中新建 tags.php 如果已经存在就不用新建了文件

  4. 在tags.php中进行绑定行为事件


走在这里,行为事件算是搞定了,因为我这里是把行为绑定到app_init初始化的钩子上,所以所有的操作都会自动执行这个钩子, 不需要去一个func一个func的去写了!



Copyright © 2017-2018 三石兄博客 & 版权所有

蜀ICP备17023832号

230547