第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

App.php-2

標(biāo)簽:
PHP

public static function run(Request $request = null)

{// thinkphp经过了 自动加载、错误接管、配置文件预设,终于开始执行了。

    // 第一步:获取请求参数

    is_null($request) && $request = Request::instance();

    // self::$instance = new static($options); 执行了 这个 instance

    // 默认 没有传入任何数值,is_null 所以执行 后面 $request = Request::instance();

    // 这个写法 真的 很经典,我喜欢你,老刘,哈哈

    // 最终获取了 一个 request 对象

 

    $config = self::initCommon();// 加载 初始化 配置 文件 选项

 

 

    // 2016-10-09

    if (defined('BIND_MODULE')) {// 默认此处是没有定义的

        // 模块/控制器绑定

        BIND_MODULE && Route::bind(BIND_MODULE);//self::$bind = ['type' => $type, $type => $bind];

        // 对 Route 的 $

    } 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']);// 指定 过滤 参数 为空 直接 返回

    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);// 配置调度 信息

 

        // 记录路由和请求信息

        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;

}

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消