ThinkPHP5.0應用強制路由、行為、統一返回值格式


8、ThinkPHP5.0應用強制路由、行為、統一返回值格式

 

答:最近喜歡上了laravel的路由模式,發現tp5也有類似的操作。因此就動手做了一些改造,

  1、強制路由模式

   'url_route_on' => true,

  'url_route_must' => true,

   設置這兩個參數便可實現tp強制路由,路由定義方式如下例:
  

//閉包
Route::get('/',function(){
    return 'Hello,world!';
});

Route::get('/test','index/Test/test');

  

  2、行為(Hook)

  這個是tp5的一個擴展,我感覺可以用來模擬中間件的作用,可以在路由里調用,實現權限驗證等

  具體見tp5手冊

$result = Hook::exec('app\\index\\behavior\\CheckAuth','run',$params);

  3、統一返回值格式

  在做接口開發時,統一返回值格式很有必要

  簡單的做法是寫一個Result類,定義一個靜態方法實現統一格式

/**
     * 統一格式返回
     * @param $data
     * @param int $errorCode
     * @param string $message
     * @return array
     */
    public static function format($data, int $errorCode=0, $message=''){
        return [
            'data' => $data,
            'errorCode' => $errorCode,
            'message' => $message
        ];
    }

  默認是不能直接返回數組的,因此還需要對源代碼中的Response.php做一下修改

 /**
     * 處理數據
     * @access protected
     * @param mixed $data 要處理的數據
     * @return mixed
     */
    protected function output($data)
    {
        //為統一數據返回格式,修改返回值格式
        if(is_array($data)||is_object($data)){
            return json_encode($data);
        }else{
            return $data;
        }
//        return $data;
    }

  返回值樣式:

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM