<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ``` <?php // // InitializtionService.php // 請求前初始化控制器服務 // // Created by lijianlin on 2019-06-14. // Copyright 2019 lijianlin. All rights reserved. // namespace app\saas\behavior; use app\common\model\Merror; class InitializtionService { public function run($params) { // 兼容控制器分層,優化控制器目錄結構 $controller = request()->controller(); $controllerArray = explode('.', $controller); $controllerLength = count($controllerArray); $appendControllerName = ''; if ($controllerLength == 1) { $appendControllerName = $controllerArray[0]; } else { for ($i = 0; $i < $controllerLength - 1; $i++) { $appendControllerName .= strtolower($controllerArray[$i]) . '\\'; } $appendControllerName .= ucfirst($controllerArray[($controllerLength - 1)]); } // $controller = '\\app\\saas\\controller\\' . request()->controller(); $controller = '\\app\\saas\\controller\\' . $appendControllerName; $verion = request()->param('version'); $init_service = function () use ($controller, $verion, $params) { $reflection = new \ReflectionClass($controller); if (property_exists($controller, 'versions') && isset($reflection->getStaticProperties()['versions'][$verion]) ) { // 默認規則返回,在前在后不允許返回其他信息 $service = $reflection->getStaticProperties()['versions'][$verion]; // 判斷控制器服務文件是否存在 return class_exists($service) ? new $service($params['tag'], $params['request']) : Merror::getInstance()->jsonApi(40006); } else { Merror::getInstance()->jsonApi(40001); } }; return is_null($verion) ? Merror::getInstance()->jsonApi(40002) : $init_service(); } } ``` ``` 代碼解讀 run方法里面有一個參數$params, 該參數是在初始化調用的時候帶過來的 ['tag' => $type, 'request' => $request] 默認請求的路由的時候需要帶入versoin版本 當存在version的時候,調用匿名函數 $init_service() 該方法做了一下判斷: 1、反射該請求類 2、判斷請求控制器中是否存在version相對應的服務器層控制器 3、判斷服務層控制器是否存在,并實例化該服務層控制器 ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看