美文网首页
ThinkPHP 5.1 Trait代码复用和正确引用第三方ex

ThinkPHP 5.1 Trait代码复用和正确引用第三方ex

作者: YEYU2001 | 来源:发表于2019-04-14 21:06 被阅读0次

    利用php 5.4以上版本可以使用的Trait封装APP接口返回的方法,在TinkPHP 5.1中extend是自己重用的代码,vendor主要是通过composer加载的代码;因此,我们的代码放在extend中,新建一个traits文件夹,在里面新建一个文件:ResponseJson.php。其完整的代码如下:

    <?php
    namespace traits;
    
    /**
     * 封装APP返回的数据
     * @Author   Yeyu2001
     * @DateTime 2019-04-14T17:35:10+0800
     */
    trait ResponseJson{
    
        // App接口出现业务异常时返回
        public function jsonData($code, $message, $data = []) {
            return $this->jsonResponse($code, $message, $data);
        }
    
        // App接口请求成功时的返回
        public function jsonSuccessData($data = []) {
            return $this->jsonResponse(0, 'Success', $data);
        }
    
        // App接口请求封装
        private function jsonResponse($code, $message, $data = []) {
            $content = [
                'code'  => $code,
                'msg'   => $message,
                'data'  => $data,
            ];
            return json_encode($content);
        }
    }
    

    我们在测试控制器中测试引入trait的代码:

    <?php
    namespace app\admin\controller;
    
    class Test extends Valid {
        use \traits\ResponseJson;
    
        //输出页面
        public function index() {
            return $this->jsonSuccessData();
        }
    }
    

    在PHP中使用Trait是绝对没有问题的,只要版本在5.4以上!但是在ThinkPHP 中,如何引用第三方的问题,即正确的引用是问题!需要注意的是:
    (1)引用Trait须在Class下,上例中Test类已经继承了Valid就不能继承其他类;
    (2)USE引用:根号+命名空间+类名(Trait名)

    相关文章

      网友评论

          本文标题:ThinkPHP 5.1 Trait代码复用和正确引用第三方ex

          本文链接:https://www.haomeiwen.com/subject/aqqewqtx.html