国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Codeigniter 4.0-dev 版源碼學(xué)習(xí)筆記之二——入口以及初始化操作

_ivan / 1322人閱讀

摘要:通過(guò)這個(gè)函數(shù)可以很方便的在程序運(yùn)行期間執(zhí)行很多常見(jiàn)操作。此文可以轉(zhuǎn)載,但轉(zhuǎn)載前需要發(fā)郵件到進(jìn)行溝通,未溝通的均視作侵權(quán)。

index.php

index.php 是整個(gè)框架的入口文件,也就是說(shuō)所有的請(qǐng)求都要從它這里開(kāi)始。因?yàn)?index.php 源碼非常簡(jiǎn)潔,那么我們直接放一張?jiān)创a截圖,按著截圖說(shuō)一下源碼。

文件位置:/index.php

代碼很簡(jiǎn)單,一共7行,前幾行還只是定義一些變量,屬于前言,就像是我的筆記之一,看不看沒(méi)什么用啊。第六行進(jìn)入了正題,它new了一個(gè)新的對(duì)象 $path ,根據(jù)前邊 require 的路徑,可以找到 paths.php 的源碼:

文件位置:/application/config/paths.php

可以看出來(lái)這個(gè)類定義了系統(tǒng)目錄的位置,因此如果有想定制目錄結(jié)構(gòu)的同學(xué),這里肯定也要相應(yīng)修改下。

因?yàn)槲覀冎饕歉阍创a,肯定不會(huì)改動(dòng)目錄,因此這個(gè)文件對(duì)我們用處不大。

回到 index.php ,那么只剩下兩行代碼了:

$app = require rtrim($paths->systemDirectory,"/ ")."/bootstrap.php";
$app->run();

這兩行代碼就像開(kāi)機(jī)鍵一樣,就那么瀟灑的執(zhí)行下,你的整個(gè)程序就跑起來(lái)了。

第一行代碼 require 了一個(gè) bootstrap.php 文件,在這個(gè)文件里,完成了整個(gè) CI 框架的初始化,包括自動(dòng)加載等等。

$app->run() 這一行,完成了整個(gè)應(yīng)用程序的運(yùn)行。因?yàn)橹筮€要對(duì)這兩行代碼深入講,這里僅僅帶過(guò)。

以下是程序的執(zhí)行過(guò)程:

bootstrap.php 文件:

bootstrap.php 是整個(gè) CI 的 “BIOS 系統(tǒng)”,它僅僅負(fù)責(zé)初始化一些自動(dòng)加載和找到 Codeigniter 核心一并初始化后返回給入口文件。

下面是 bootstrap.php 的源碼截圖:

第 9 行之前全部是定義一些路徑常量

第 9 行 require 進(jìn)來(lái)了一些常量,如果你有自己的一些常量也可以考慮加到這個(gè)文件里,那么幾乎在整個(gè) CI 執(zhí)行期間應(yīng)該都可以使用。

第 10 行 Common.php 這個(gè)文件定義了一些常用的函數(shù),如 cache 、 view 、 session 等。通過(guò)這個(gè)函數(shù)可以很方便的在程序運(yùn)行期間執(zhí)行很多常見(jiàn)操作。

第 11 行是 CI 自己實(shí)現(xiàn)的自動(dòng)加載類,大部分情況用于自動(dòng)加載自己的類庫(kù),當(dāng)然為了能兼容大火的 Composer 在 18-20 行, 也對(duì) Composer 進(jìn)行了處理。

第 12 行是 CI 自己的自動(dòng)加載的配置,如果你自己寫的類文件,想讓 CI 幫你自動(dòng)加載,可以把類相關(guān)信息配置到這里。

第 13 行的 services.php 是個(gè)重頭戲,它是容器的一種實(shí)現(xiàn),可以把你寫的一些類庫(kù)初始化信息配置在其中,那么需要的時(shí)候,可以像 15 行一樣直接使用這個(gè)類,并在運(yùn)行期間保證了這個(gè)類的單實(shí)例化。

第 15 行如上所說(shuō),真正實(shí)例化了 CI 自己的 autoload 類,并在 16 行把 application 目錄下的 autoload 配置傳入,并在 17 行進(jìn)行了注冊(cè)。

第 22 行,據(jù) CI 注釋說(shuō):始終加載 url 這個(gè) helper , 原因是 90% 的應(yīng)用代碼都會(huì)用到它。話說(shuō)這個(gè) helper 函數(shù)是前邊 Common.php 加載進(jìn)來(lái)的。

第 23 行是核心,它 new 了 Codeigniter 這個(gè)核心類,并把 application/config/app.php 的配置傳入了,在 24 行初始化了一下 ,隨之返回給了 index.php

下面以一張拙劣的流程圖結(jié)束本篇文章:

總結(jié)以及下節(jié)預(yù)告

本節(jié)分析了一下 CI 的 BIOS 系統(tǒng): bootstrap.php ,這個(gè)文件初始化了一些基本的類,找到并初始化了 CI 核心對(duì)象,同時(shí)將該對(duì)象返回給的入口文件。

下節(jié)當(dāng)然要通覽一下 Codeigniter.php 文件。

此文可以轉(zhuǎn)載,但轉(zhuǎn)載前需要發(fā)郵件到imustgxd*sina.cn進(jìn)行溝通,未溝通的均視作侵權(quán)。
轉(zhuǎn)載同時(shí)需注明原文鏈接 (https://segmentfault.com/a/11... ,并保留此段文字。

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/22894.html

相關(guān)文章

  • Codeigniter 4.0-dev 源碼學(xué)習(xí)筆記之七—— View 視圖

    摘要:行處理視圖文件名后綴。結(jié)語(yǔ)從源碼上看,使用了原始作為模版機(jī)制使得視圖邏輯非常簡(jiǎn)單。無(wú)非也就是把視圖進(jìn)來(lái),用輸出緩沖把執(zhí)行結(jié)果拿到即可。此文可以轉(zhuǎn)載,但轉(zhuǎn)載前需要發(fā)郵件到進(jìn)行溝通,未溝通的均視作侵權(quán)。 前言 CI 的 View 沒(méi)有像 Laravel 等一些流行框架一樣設(shè)計(jì)的那么重,有自己的一套模版機(jī)制,CI 一直采用純天然的 PHP 模板形式,純天然的好處是不用再學(xué)習(xí)一套模板語(yǔ)言了,缺...

    LiangJ 評(píng)論0 收藏0
  • Codeigniter 4.0-dev 源碼學(xué)習(xí)筆記之三——核心文件 Codeigniter.ph

    摘要:行,是否強(qiáng)制訪問(wèn)。行,嘗試處理此次請(qǐng)求,詳細(xì)見(jiàn)方法。至此,的執(zhí)行主流程完畢。小結(jié)是的核心文件,它被調(diào)用后,完成了諸多的主流程操作。此文可以轉(zhuǎn)載,但轉(zhuǎn)載前需要發(fā)郵件到進(jìn)行溝通,未溝通的均視作侵權(quán)。 前言 Codeigniter.php 是 CI 4 的核心所在,在這里接收并處理了 request 請(qǐng)求,安全檢查,緩存處理, URL 解析以及路由匹配,執(zhí)行過(guò)濾器,加載運(yùn)行 Controll...

    alighters 評(píng)論0 收藏0
  • Codeigniter 4.0-dev 源碼學(xué)習(xí)筆記之一——前言以及 CI 4 預(yù)覽

    摘要:版權(quán)聲明可轉(zhuǎn)載,但不論任何媒體都需要在轉(zhuǎn)載前與本人溝通,并在轉(zhuǎn)載時(shí)注明出處。的各個(gè)核心模塊以模塊名為目錄名分別存儲(chǔ)在這個(gè)目錄下。下一篇文章會(huì)涉及到和。此文可以轉(zhuǎn)載,但轉(zhuǎn)載前需要發(fā)郵件到進(jìn)行溝通,未溝通的均視作侵權(quán)。 寫在前面: 為什么選擇開(kāi)發(fā)過(guò)程中的 CI 4 作為源碼解讀版本:(1)首先我選 CI 是因?yàn)樗暗姆€(wěn)定版都是相對(duì)比較輕量小巧的,而且可以認(rèn)為是簡(jiǎn)單的。(2)為什么沒(méi)有選...

    MSchumi 評(píng)論0 收藏0
  • Codeigniter 4.0-dev 源碼學(xué)習(xí)筆記之六——控制器

    摘要:控制器嚴(yán)格來(lái)說(shuō),這個(gè)是控制器父類的源碼。在中,控制器僅負(fù)責(zé)接到返回的組裝的頁(yè)面字符串,并回核心中,由核心再處理后續(xù)事宜。此文可以轉(zhuǎn)載,但轉(zhuǎn)載前需要發(fā)郵件到進(jìn)行溝通,未溝通的均視作侵權(quán)。 前言 其實(shí)一開(kāi)始我是很糾結(jié)是否要寫控制器的源碼分析的,因?yàn)榭刂破鞯脑创a太少了,少到你不相信這是一個(gè) MVC 里的一個(gè)重頭。直覺(jué)里,大家都覺(jué)得控制器作為各個(gè)請(qǐng)求的入口,其后端應(yīng)該有很多很多的代碼支撐才可以...

    asce1885 評(píng)論0 收藏0
  • Codeigniter 4.0-dev 源碼學(xué)習(xí)筆記之四——詳細(xì)路由過(guò)程

    摘要:行,判斷如果為空,那么返回默認(rèn)路由。行,把處理完畢后找到的返回。方法該方法是自動(dòng)按著約定規(guī)則去目錄去找路由的過(guò)程。此文可以轉(zhuǎn)載,但轉(zhuǎn)載前需要發(fā)郵件到進(jìn)行溝通,未溝通的均視作侵權(quán)。 前言 我個(gè)人覺(jué)得在當(dāng)前 MVC 流行的架構(gòu)下,要想去了解一個(gè)框架,或者是一個(gè)基于此架構(gòu)下的應(yīng)用程序,最好的入手方式就是先看路由,雖然路由不是 MVC 里的任何一個(gè),但是知道了路由的來(lái)龍去脈就知道了整個(gè)框架或者...

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

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

0條評(píng)論

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