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

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

 

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

  一、強制路由模式json

   'url_route_on' => true,數組

  'url_route_must' => true,閉包

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

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

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

  

  二、行爲(Hook)url

  這個是tp5的一個擴展,我感受能夠用來模擬中間件的做用,能夠在路由裏調用,實現權限驗證等spa

  具體見tp5手冊code

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

  三、統一返回值格式orm

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

  簡單的作法是寫一個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;
    }

  返回值樣式:

  

相關文章
相關標籤/搜索