亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

thinkphp源碼分析(二)—入口篇

lingdududu / 1726人閱讀

摘要:源碼分析入口篇源碼分析應(yīng)用入口用戶發(fā)起的請(qǐng)求都會(huì)經(jīng)過應(yīng)用的入口文件,通常是文件。當(dāng)然,你也可以更改或者增加新的入口文件。通常,我們不建議在應(yīng)用入口文件中加入過多的代碼,尤其是和業(yè)務(wù)邏輯相關(guān)的代碼。

源碼分析---入口篇 源碼分析 應(yīng)用入口

用戶發(fā)起的請(qǐng)求都會(huì)經(jīng)過應(yīng)用的入口文件,通常是 ==public/index.php==文件。當(dāng)然,你也可以更改或者增加新的入口文件。

通常入口文件的代碼都比較簡(jiǎn)單,一個(gè)普通的入口文件代碼如下:

// 應(yīng)用入口文件

// 定義項(xiàng)目路徑
define("APP_PATH", __DIR__ . "/../application/");
// 加載框架引導(dǎo)文件
require __DIR__ . "/../thinkphp/start.php";
一般入口文件以定義一些常量為主,支持的常量請(qǐng)參考后續(xù)的內(nèi)容或者附錄部分。

通常,我們不建議在應(yīng)用入口文件中加入過多的代碼,尤其是和業(yè)務(wù)邏輯相關(guān)的代碼。

加載引導(dǎo)文件
// ThinkPHP 引導(dǎo)文件
// 1. 加載基礎(chǔ)文件
require __DIR__ . "/base.php";

// 2. 執(zhí)行應(yīng)用
App::run()->send();

加載基礎(chǔ)文件
// __DIR__ . "/base.php"文件


//定義常量
define("THINK_VERSION", "5.0.24");

....//常量太多省略了部分


// 載入Loader類
require CORE_PATH . "Loader.php";

// 加載環(huán)境變量配置文件
if (is_file(ROOT_PATH . ".env")) {
    $env = parse_ini_file(ROOT_PATH . ".env", true);

    foreach ($env as $key => $val) {
        $name = ENV_PREFIX . strtoupper($key);

        if (is_array($val)) {
            foreach ($val as $k => $v) {
                $item = $name . "_" . strtoupper($k);
                putenv("$item=$v");
            }
        } else {
            putenv("$name=$val");
        }
    }
}

// 注冊(cè)自動(dòng)加載
	hinkLoader::register();

// 注冊(cè)錯(cuò)誤和異常處理機(jī)制
	hinkError::register();

// 加載慣例配置文件
	hinkConfig::set(include THINK_PATH . "convention" . EXT);

該部分主要是定義一些系統(tǒng)常量,關(guān)鍵點(diǎn)是引入了自動(dòng)加載類并且注冊(cè)了自動(dòng)加載,使得框架可以自動(dòng)引入類文件,業(yè)務(wù)層只要直接use對(duì)應(yīng)命名空間的類即可進(jìn)行實(shí)例化,注冊(cè)錯(cuò)誤及異常處理機(jī)制, 加載默認(rèn)配置等操作。

最后就是應(yīng)用啟動(dòng),App::run()->send();

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/30128.html

相關(guān)文章

  • thinkphp源碼分析(一)—開門

    摘要:源碼分析開門篇生命周期入口文件用戶發(fā)起的請(qǐng)求都會(huì)經(jīng)過應(yīng)用的入口文件,通常是文件。注冊(cè)錯(cuò)誤和異常機(jī)制執(zhí)行注冊(cè)錯(cuò)誤和異常處理機(jī)制。由三部分組成應(yīng)用關(guān)閉方法錯(cuò)誤處理方法異常處理方法注冊(cè)應(yīng)用關(guān)閉方法是為了便于攔截一些系統(tǒng)錯(cuò)誤。 源碼分析—開門篇 thinkphp生命周期 1、入口文件 用戶發(fā)起的請(qǐng)求都會(huì)經(jīng)過應(yīng)用的入口文件,通常是 ==public/index.php==文件。當(dāng)然,你也可以更改...

    flybywind 評(píng)論0 收藏0
  • thinkphp源碼分析(四)—錯(cuò)誤及異常處理

    摘要:源碼分析錯(cuò)誤及異常處理機(jī)制錯(cuò)誤及異常處理機(jī)制文件是,在框架引導(dǎo)文件的的基礎(chǔ)文件中注冊(cè)不知道的可以去看源碼分析二入口篇,通過進(jìn)行的注冊(cè)。異常中止處理將錯(cuò)誤信息托管至寫入日志通過獲取最后拋出的錯(cuò)誤,把信息托管至,在通過異常處理函數(shù)進(jìn)行記錄信息。 源碼分析 錯(cuò)誤及異常處理機(jī)制 錯(cuò)誤及異常處理機(jī)制文件是/thinkphp/library/think/Error.php,在框架引導(dǎo)文件的的基礎(chǔ)文...

    xialong 評(píng)論0 收藏0
  • thinkphp源碼分析(五)—配置

    摘要:對(duì)于這兩種不同形式的參數(shù),處理方式也不一樣,為字符串形式字符串則表示單個(gè)配置設(shè)置二維數(shù)組判斷字符串中是否帶沒有直接把的小寫形式作為,作為值設(shè)置到配置中如果帶,只處理前面兩項(xiàng),即把字符串通過分割成數(shù)組,取數(shù)組的前面兩項(xiàng),把設(shè)置到配置中。 源碼分析---入口篇 源碼分析 全局配置加載類 全局配置類的主要代碼如下: class Config { /** * @var ar...

    HitenDev 評(píng)論0 收藏0
  • TP5學(xué)習(xí)記錄(Controller

    摘要:可以在入口文件中定義,然后新建文件夾,達(dá)到將應(yīng)用配置放到該文件的目的,這樣方便將配置進(jìn)行統(tǒng)一管理。動(dòng)態(tài)配置返回?cái)?shù)據(jù)類型功能同上張三男請(qǐng)求成功 ThinkPHP5 ThinkPHP是一個(gè)免費(fèi)開源的、快速簡(jiǎn)單的、面向?qū)ο蟮摹⑤p量級(jí)PHP開發(fā)框架。 為什么選擇ThinkPHP5? ThinkPHP5采用了全新的架構(gòu)思想; 優(yōu)化了核心是一個(gè)顛覆性的版本; 支持composer方式安裝; 對(duì)...

    leone 評(píng)論0 收藏0
  • ThinkPHP5.1 源碼淺析()自動(dòng)加載機(jī)制

    摘要:如果遍歷后沒有找到,則加載失敗。在之后碰到了之后直接拿來用,提高系統(tǒng)自動(dòng)加載的性能。這里我們就講完了注冊(cè)自動(dòng)加載。使用自動(dòng)加載我們?cè)谥卸x了我們自動(dòng)加載函數(shù)式方法。 繼 生命周期的第二篇,大家盡可放心,不會(huì)隨便鴿文章的 第一篇中,我們提到了入口腳本,也說了,里面注冊(cè)了自動(dòng)加載的功能 本文默認(rèn)你有自動(dòng)加載和命名空間的基礎(chǔ)。如果沒有請(qǐng) 看此篇文章 php 類的自動(dòng)加載與命名空間 自動(dòng)加載...

    mudiyouyou 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<