ThinkPHP 通用的API格式封装实例代码
ThinkPHP 通用的API格式封装1.创建status.php 用于设置通用的状态码返回枚举类1234567?phpreturn[success1,error0,controller_not_found-1,action_not_found-2,];2.将API返回格式统一封装12345678910111213141516?php/**API 统一格式化* param $status* param $message* param $data* param $httpStatus* return \think\response\Json*/functionshow($status,$message,$data[],$httpStatus200){$result [status$status,message$message,data$data,];returnjson($result,$httpStatus);}3.重写BaseController中的__call方法在BaseController中重写__call方法,当调用不存在的方法时,就会调用__call方法,会传入请求方法和参数1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586?phpdeclare(strict_types 1);namespaceapp;usethink\App;usethink\exception\ValidateException;usethink\Validate;/*** 控制器基础类*/abstractclassBaseController{/*** Request实例* var \think\Request*/protected$request;/*** 应用实例* var \think\App*/protected$app;/*** 是否批量验证* var bool*/protected$batchValidate false;/*** 控制器中间件* var array*/protected$middleware [];/*** 构造方法* access public* param App $app 应用对象*/publicfunction__construct(App$app){$this-app $app;$this-request $this-app-request;// 控制器初始化$this-initialize();}// 初始化protectedfunctioninitialize(){}/*** 验证数据* access protected* param array $data 数据* param string|array $validate 验证器名或者验证规则数组* param array $message 提示信息* param bool $batch 是否批量验证* return array|string|true* throws ValidateException*/protectedfunctionvalidate(array$data, string|array$validate,array$message [], bool$batch false){if(is_array($validate)) {$vnewValidate();$v-rule($validate);}else{if(strpos($validate,.)) {// 支持场景[$validate,$scene] explode(.,$validate);}$class false !strpos($validate,\\) ?$validate:$this-app-parseClass(validate,$validate);$vnew$class();if(!empty($scene)) {$v-scene($scene);}}$v-message($message);// 是否批量验证if($batch||$this-batchValidate) {$v-batch(true);}return$v-failException(true)-check($data);}// 重写__call部分publicfunction__call(string$name,array$arguments){// TODO: Implement __call() method.returnshow(config(status.action_not_found),找不到{$name}方法,null,404);}}4.在控制器下面新建Error控制器然后添加__call方法在控制器下面新建Error控制器,然后添加__call方法,这样就会调用不存在的控制器的时候会调用__call方法,会传入请求的控制器名称和参数123456789?phpnamespaceapp\index\controller;classError{publicfunction__call(string$name,array$arguments){// TODO: Implement __call() method.returnshow(config(status.controller_not_found),找不到{$name}控制器,null,404);}}测试假定一个成功的请求测试一下1234publicfunctionjsonTest(){$data [namethinkphp,status1];returnshow(config(status.success),请求成功,$data);}到此这篇关于ThinkPHP 通用的API格式封装的文章就介绍到这了
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2545839.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!