當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Loader::clearInstance方法代碼示例

本文整理匯總了PHP中think\Loader::clearInstance方法的典型用法代碼示例。如果您正苦於以下問題:PHP Loader::clearInstance方法的具體用法?PHP Loader::clearInstance怎麽用?PHP Loader::clearInstance使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在think\Loader的用法示例。


在下文中一共展示了Loader::clearInstance方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: run

 /**
  * 執行應用程序
  * @access public
  * @param Request $request Request對象
  * @return Response
  * @throws Exception
  */
 public static function run(Request $request = null)
 {
     is_null($request) && ($request = Request::instance());
     if ('ico' == $request->ext()) {
         throw new HttpException(404, 'ico file not exists');
     }
     $config = self::initCommon();
     try {
         // 開啟多語言機製
         if ($config['lang_switch_on']) {
             // 獲取當前語言
             $request->langset(Lang::detect());
             // 加載係統語言包
             Lang::load(THINK_PATH . 'lang' . DS . $request->langset() . EXT);
             if (!$config['app_multi_module']) {
                 Lang::load(APP_PATH . 'lang' . DS . $request->langset() . EXT);
             }
         }
         // 獲取應用調度信息
         $dispatch = self::$dispatch;
         if (empty($dispatch)) {
             // 進行URL路由檢測
             $dispatch = self::routeCheck($request, $config);
         }
         // 記錄當前調度信息
         $request->dispatch($dispatch);
         // 記錄路由信息
         self::$debug && Log::record('[ ROUTE ] ' . var_export($dispatch, true), 'info');
         // 監聽app_begin
         Hook::listen('app_begin', $dispatch);
         switch ($dispatch['type']) {
             case 'redirect':
                 // 執行重定向跳轉
                 $data = Response::create($dispatch['url'], 'redirect')->code($dispatch['status']);
                 break;
             case 'module':
                 // 模塊/控製器/操作
                 $data = self::module($dispatch['module'], $config, isset($dispatch['convert']) ? $dispatch['convert'] : null);
                 break;
             case 'controller':
                 // 執行控製器操作
                 $data = Loader::action($dispatch['controller'], $dispatch['params']);
                 break;
             case 'method':
                 // 執行回調方法
                 $data = self::invokeMethod($dispatch['method'], $dispatch['params']);
                 break;
             case 'function':
                 // 執行閉包
                 $data = self::invokeFunction($dispatch['function'], $dispatch['params']);
                 break;
             case 'response':
                 $data = $dispatch['response'];
                 break;
             default:
                 throw new \InvalidArgumentException('dispatch type not support');
         }
     } catch (HttpResponseException $exception) {
         $data = $exception->getResponse();
     }
     // 清空類的實例化
     Loader::clearInstance();
     // 輸出數據到客戶端
     if ($data instanceof Response) {
         $response = $data;
     } elseif (!is_null($data)) {
         // 默認自動識別響應輸出類型
         $isAjax = $request->isAjax();
         $type = $isAjax ? Config::get('default_ajax_return') : Config::get('default_return_type');
         $response = Response::create($data, $type);
     } else {
         $response = Response::create();
     }
     // 監聽app_end
     Hook::listen('app_end', $response);
     // Trace調試注入
     if (Config::get('app_trace')) {
         Debug::inject($response);
     }
     return $response;
 }
開發者ID:GDdark,項目名稱:cici,代碼行數:88,代碼來源:App.php

示例2: run

 /**
  * 執行應用程序
  * @access public
  * @param Request $request Request對象
  * @return Response
  * @throws Exception
  */
 public static function run(Request $request = null)
 {
     is_null($request) && ($request = Request::instance());
     try {
         $config = self::initCommon();
         if (defined('BIND_MODULE')) {
             // 模塊/控製器綁定
             BIND_MODULE && Route::bind(BIND_MODULE);
         } elseif ($config['auto_bind_module']) {
             // 入口自動綁定
             $name = pathinfo($request->baseFile(), PATHINFO_FILENAME);
             if ($name && 'index' != $name && is_dir(APP_PATH . $name)) {
                 Route::bind($name);
             }
         }
         $request->filter($config['default_filter']);
         if ($config['lang_switch_on']) {
             // 開啟多語言機製 檢測當前語言
             Lang::detect();
         } else {
             // 讀取默認語言
             Lang::range($config['default_lang']);
         }
         $request->langset(Lang::range());
         // 加載係統語言包
         Lang::load([THINK_PATH . 'lang' . DS . $request->langset() . EXT, APP_PATH . 'lang' . DS . $request->langset() . EXT]);
         // 獲取應用調度信息
         $dispatch = self::$dispatch;
         if (empty($dispatch)) {
             // 進行URL路由檢測
             $dispatch = self::routeCheck($request, $config);
         }
         // 記錄當前調度信息
         $request->dispatch($dispatch);
         // 記錄路由和請求信息
         if (self::$debug) {
             Log::record('[ ROUTE ] ' . var_export($dispatch, true), 'info');
             Log::record('[ HEADER ] ' . var_export($request->header(), true), 'info');
             Log::record('[ PARAM ] ' . var_export($request->param(), true), 'info');
         }
         // 監聽app_begin
         Hook::listen('app_begin', $dispatch);
         switch ($dispatch['type']) {
             case 'redirect':
                 // 執行重定向跳轉
                 $data = Response::create($dispatch['url'], 'redirect')->code($dispatch['status']);
                 break;
             case 'module':
                 // 模塊/控製器/操作
                 $data = self::module($dispatch['module'], $config, isset($dispatch['convert']) ? $dispatch['convert'] : null);
                 break;
             case 'controller':
                 // 執行控製器操作
                 $data = Loader::action($dispatch['controller']);
                 break;
             case 'method':
                 // 執行回調方法
                 $data = self::invokeMethod($dispatch['method']);
                 break;
             case 'function':
                 // 執行閉包
                 $data = self::invokeFunction($dispatch['function']);
                 break;
             case 'response':
                 $data = $dispatch['response'];
                 break;
             default:
                 throw new \InvalidArgumentException('dispatch type not support');
         }
     } catch (HttpResponseException $exception) {
         $data = $exception->getResponse();
     }
     // 清空類的實例化
     Loader::clearInstance();
     // 輸出數據到客戶端
     if ($data instanceof Response) {
         $response = $data;
     } elseif (!is_null($data)) {
         // 默認自動識別響應輸出類型
         $isAjax = $request->isAjax();
         $type = $isAjax ? Config::get('default_ajax_return') : Config::get('default_return_type');
         $response = Response::create($data, $type);
     } else {
         $response = Response::create();
     }
     // 監聽app_end
     Hook::listen('app_end', $response);
     return $response;
 }
開發者ID:pangPython,項目名稱:iNewsCMS,代碼行數:96,代碼來源:App.php


注:本文中的think\Loader::clearInstance方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。