手机版

在Thinkphp5框架中实现Hook行为的简单方法示例

时间:2021-08-20 来源:互联网 编辑:宝哥软件园 浏览:

本文通过一个例子来说明钩子行为在Thinkphp5框架中的简单实现。分享给大家参考,如下:

实现在方法的开头和结尾添加了两个行为:api_init和api_end

这里省略了框架的构建和模块的建立。请自己学。

直接转到下面的步骤:

1.首先创建一个行为类\应用\ API \行为\ aoptest.php。

?phpnamespace app \ api \行为;//行为类类AopTest{ //绑定api初始化公共函数API init($ params){//参数get $ id=input(' id ');//获取请求参数$ UID=session(' UID ');//获取会话登录uid //打印出echo PHP _ EOL回应“ip检查”。$params。GET:’。$ idecho“uid=”。$ uidecho PHP _ EOL//获取当前模块控制器名称。方法名$ request=\ think \ request :3360 instance();$ controller _ name=$ request-controller();$ model _ name=$ request-module();$ action _ name=$ request-action();echo“controller _ name=”。$控制器_名称。model_name='。$model_name。action_name='。$ action _ name//构建数组$ data=array();$ data[' status ']=0;$ data[' msg ']=' no permission ';//exit(JSON _ encode($ data));//以json格式返回数据}//将api绑定到end公共函数API end($ params){ echo PHP _ eol;回声“记录”。$ paramsecho PHP _ EOL}}2、配置标签\应用\ API \ tags.php。

这里需要注意的是,配置的键是对应行为类中的方法。如果行为类中只需要一个方法,则默认使用run方法,如果有多个方法,则使用相应的标记键,

注意:V5.0.4以上,行为类的方法需要采用驼峰法来命名apiInit。如果低于V5.0.4,可以使用api_init

//应用程序行为扩展定义文件返回[//接口初始化' API _ init'=['app \ \ API \ \行为\ \ aoptest'],' API _ end'=['app \ \ API \ \行为\ \ aoptest']。] 3.在要添加行为的类的方法中添加行为监控。

?phpnamespace应用程序\ api \控制器;使用\ think \ Hook类索引{ //访问URL http://app.tp5.com/index.php/api/index/index? id=5公共函数索引(){ session _ start();会话(' UID ',123);$ id=input(' id ');$params1='参数1 ';$ RES=hook :3360 listen(' API _ init ',$ params 1);echo var_export($res,true);echo“API索引”;$params2='参数2 ';Hook:listen('api_end ',$ params 2);}}4、访问查看输出效果:

5.文件分发示意图

简单实现,希望能给想了解的同学一些启发。

更多对thinkPHP感兴趣的读者可以查看本网站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》、《PHP模板技术总结》、0103010。

希望本文对基于ThinkPHP框架的PHP编程有所帮助。

版权声明:在Thinkphp5框架中实现Hook行为的简单方法示例是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。