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

資訊專欄INFORMATION COLUMN

Codeigniter 4.0-dev 版源碼學習筆記之二——入口以及初始化操作

_ivan / 1329人閱讀

摘要:通過這個函數可以很方便的在程序運行期間執行很多常見操作。此文可以轉載,但轉載前需要發郵件到進行溝通,未溝通的均視作侵權。

index.php

index.php 是整個框架的入口文件,也就是說所有的請求都要從它這里開始。因為 index.php 源碼非常簡潔,那么我們直接放一張源碼截圖,按著截圖說一下源碼。

文件位置:/index.php

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

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

可以看出來這個類定義了系統目錄的位置,因此如果有想定制目錄結構的同學,這里肯定也要相應修改下。

因為我們主要是搞源碼,肯定不會改動目錄,因此這個文件對我們用處不大。

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

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

這兩行代碼就像開機鍵一樣,就那么瀟灑的執行下,你的整個程序就跑起來了。

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

$app->run() 這一行,完成了整個應用程序的運行。因為之后還要對這兩行代碼深入講,這里僅僅帶過。

以下是程序的執行過程:

bootstrap.php 文件:

bootstrap.php 是整個 CI 的 “BIOS 系統”,它僅僅負責初始化一些自動加載和找到 Codeigniter 核心一并初始化后返回給入口文件。

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

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

第 9 行 require 進來了一些常量,如果你有自己的一些常量也可以考慮加到這個文件里,那么幾乎在整個 CI 執行期間應該都可以使用。

第 10 行 Common.php 這個文件定義了一些常用的函數,如 cache 、 view 、 session 等。通過這個函數可以很方便的在程序運行期間執行很多常見操作。

第 11 行是 CI 自己實現的自動加載類,大部分情況用于自動加載自己的類庫,當然為了能兼容大火的 Composer 在 18-20 行, 也對 Composer 進行了處理。

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

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

第 15 行如上所說,真正實例化了 CI 自己的 autoload 類,并在 16 行把 application 目錄下的 autoload 配置傳入,并在 17 行進行了注冊。

第 22 行,據 CI 注釋說:始終加載 url 這個 helper , 原因是 90% 的應用代碼都會用到它。話說這個 helper 函數是前邊 Common.php 加載進來的。

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

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

總結以及下節預告

本節分析了一下 CI 的 BIOS 系統: bootstrap.php ,這個文件初始化了一些基本的類,找到并初始化了 CI 核心對象,同時將該對象返回給的入口文件。

下節當然要通覽一下 Codeigniter.php 文件。

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/22894.html

相關文章

  • Codeigniter 4.0-dev 源碼學習筆記之七—— View 視圖

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

    LiangJ 評論0 收藏0
  • Codeigniter 4.0-dev 源碼學習筆記之三——核心文件 Codeigniter.ph

    摘要:行,是否強制訪問。行,嘗試處理此次請求,詳細見方法。至此,的執行主流程完畢。小結是的核心文件,它被調用后,完成了諸多的主流程操作。此文可以轉載,但轉載前需要發郵件到進行溝通,未溝通的均視作侵權。 前言 Codeigniter.php 是 CI 4 的核心所在,在這里接收并處理了 request 請求,安全檢查,緩存處理, URL 解析以及路由匹配,執行過濾器,加載運行 Controll...

    alighters 評論0 收藏0
  • Codeigniter 4.0-dev 源碼學習筆記之一——前言以及 CI 4 預覽

    摘要:版權聲明可轉載,但不論任何媒體都需要在轉載前與本人溝通,并在轉載時注明出處。的各個核心模塊以模塊名為目錄名分別存儲在這個目錄下。下一篇文章會涉及到和。此文可以轉載,但轉載前需要發郵件到進行溝通,未溝通的均視作侵權。 寫在前面: 為什么選擇開發過程中的 CI 4 作為源碼解讀版本:(1)首先我選 CI 是因為它之前的穩定版都是相對比較輕量小巧的,而且可以認為是簡單的。(2)為什么沒有選...

    MSchumi 評論0 收藏0
  • Codeigniter 4.0-dev 源碼學習筆記之六——控制器

    摘要:控制器嚴格來說,這個是控制器父類的源碼。在中,控制器僅負責接到返回的組裝的頁面字符串,并回核心中,由核心再處理后續事宜。此文可以轉載,但轉載前需要發郵件到進行溝通,未溝通的均視作侵權。 前言 其實一開始我是很糾結是否要寫控制器的源碼分析的,因為控制器的源碼太少了,少到你不相信這是一個 MVC 里的一個重頭。直覺里,大家都覺得控制器作為各個請求的入口,其后端應該有很多很多的代碼支撐才可以...

    asce1885 評論0 收藏0
  • Codeigniter 4.0-dev 源碼學習筆記之四——詳細路由過程

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

    NSFish 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<