成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Codeigniter 4.0-dev 版源碼學(xué)習(xí)筆記之一——前言以及 CI 4 預(yù)覽

MSchumi / 3045人閱讀

摘要:版權(quán)聲明可轉(zhuǎn)載,但不論任何媒體都需要在轉(zhuǎn)載前與本人溝通,并在轉(zhuǎn)載時注明出處。的各個核心模塊以模塊名為目錄名分別存儲在這個目錄下。下一篇文章會涉及到和。此文可以轉(zhuǎn)載,但轉(zhuǎn)載前需要發(fā)郵件到進(jìn)行溝通,未溝通的均視作侵權(quán)。

寫在前面:

為什么選擇開發(fā)過程中的 CI 4 作為源碼解讀版本:(1)首先我選 CI 是因為它之前的穩(wěn)定版都是相對比較輕量小巧的,而且可以認(rèn)為是簡單的。(2)為什么沒有選擇目前穩(wěn)定的 3.x 版是因為我個人認(rèn)為這個版本因為歷史包袱原因確實在理念方面有些老了,用它沒問題,但是學(xué)習(xí)它就不值得了。(3)選一個開發(fā)還沒有穩(wěn)定版的原因:既然僅僅是學(xué)習(xí),即使的不穩(wěn)定版應(yīng)該也不會耽誤我們?nèi)チ私馑?,還有就是據(jù)說 CI 4 為了追趕潮流,用了很多的新特性,甚至直接提示 PHP 必須是7以上了。

寫本文的目的:學(xué)習(xí)為主,同時把心得分享給大家。

CI 4 發(fā)布了正式版后如何:我會經(jīng)常關(guān)注 CI 4 的進(jìn)展,如果正式版發(fā)布了,并且架構(gòu)沒有太大變動,我會更新本文。

版權(quán)聲明:可轉(zhuǎn)載,但不論任何媒體都需要在轉(zhuǎn)載前與本人溝通(imustgxd*sina&cn),并在轉(zhuǎn)載時注明出處。

錯誤聲明:本人水平有限,該系列文章中可能會出現(xiàn)低級錯誤甚至“南轅北轍”的情況發(fā)生,請用中肯非激進(jìn)的語言指正。

筆記時間:2017年4月。

P.S. 有一本書叫做《PHP 6 高級編程》,然后 PHP 跳過了,希望 CI 別跳過 4 ,不過無所謂啦,畢竟只是讀一下源碼而已。

下面進(jìn)入正文:

CI 4 的下載和基本部署

CI 4 開發(fā)版是在 github (https://github.com/bcit-ci/Co... 上下載的,直接點擊 clone or download 下載 zip 包。

目前 CI 4 的文檔還沒有定稿,不過可以作為參考,網(wǎng)址是:https://bcit-ci.github.io/Cod...

參考文檔中的提示,我們把 CI 的zip包解壓,并且網(wǎng)站根目錄指向 public 文件夾。CI 4 參考了 Laravel 、 YII2 等流行框架的做法,不在將所有的源碼都扔進(jìn) web 服務(wù)器的可訪問目錄,這樣做會更安全些。舉個簡單例子,經(jīng)常有黑客會找上傳漏洞,然后把未經(jīng)許可的文件上傳到 web 目錄,如果上傳的是個 php 文件,同時又在里邊加了一些高權(quán)限的代碼,后果不堪設(shè)想,而如果是這種模式,那么就可以把 public 目錄在發(fā)布時設(shè)置成只讀模式,甚至設(shè)置成只執(zhí)行 index.php 這一個腳本,那么就會安全多了。部署好后,我們訪問 http://localhost 如果看到了大大的 Welcome to CodeIgniter ,說明已經(jīng)部署成功。

CI 4 源碼目錄

既然已經(jīng)基本部署完畢,那么先來預(yù)覽一下目錄結(jié)構(gòu)吧:

可以看到依舊是我們熟悉的 CI 味道。

application

application 是存儲我們應(yīng)用源碼的位置。

/application
        /Config         存儲配置信息
        /Controllers    控制器存儲位置
        /Helpers        存儲自定義的輔助函數(shù)
        /Language       自定義的語言文件
        /Libraries      自定義的類庫
        /Models         數(shù)據(jù)庫模型以及業(yè)務(wù)邏輯
        /Views          視圖文件
public

public 是 web 服務(wù)器要指向的位置,另一些 CSS 以及圖片等資源文件也可以保存到這里。里面已經(jīng)包含了 .htaccess 文件,默認(rèn)就已經(jīng)將 URL 路徑中的 index.php 去掉了,同時已經(jīng)處理好了 CSS , 圖片 , html 等一些靜態(tài)資源,確保能直接訪問。

system

system 是 CI 核心源碼存放位置,我們需要解讀的大部分源碼都在這里。

CI 的各個核心模塊以模塊名為目錄名分別存儲在這個目錄下。在后續(xù)的章節(jié)會根據(jù)需要介紹到一部分。

其中 bootstrap.php , CodeIgniter.php 是 CI 執(zhí)行流程過程中用到的核心文件。

bootstrap.php 會被 public 下的 index.php 調(diào)用,形象點說, index.php 是程序入口,就像是 PC 的開機鍵,bootstrap.php 就像是 BIOS 只負(fù)責(zé)基本程序的加載檢測以及準(zhǔn)備過程,如自動加載等,CodeIgniter.php 更像是 PC 的 OS ,所有的模塊包括控制器、這種類庫就像是應(yīng)用軟件一樣被 CodeIgniter.php 調(diào)用并加載。

先扔一張所謂的結(jié)構(gòu)圖,供啟發(fā)一下思路,注意,不是流程圖。

test

此目錄是寫測試用例的地方,里邊有個readme.md 文件,可以參考此文件部署以及書寫測試用例。

writable

顧名思義,是可寫的文件夾,里邊存 CI 的緩存文件、日志文件、以及上傳文件。與源碼關(guān)系不大,現(xiàn)在不多說,等需要時再聊聊。

總結(jié)

本篇文章算是一個開頭,總體預(yù)覽一下 CI 的基本結(jié)構(gòu)。下一篇文章會涉及到 index.php 和 bootstrap.php 。

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

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/22898.html

相關(guān)文章

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

    摘要:通過這個函數(shù)可以很方便的在程序運行期間執(zhí)行很多常見操作。此文可以轉(zhuǎn)載,但轉(zhuǎn)載前需要發(fā)郵件到進(jìn)行溝通,未溝通的均視作侵權(quán)。 index.php index.php 是整個框架的入口文件,也就是說所有的請求都要從它這里開始。因為 index.php 源碼非常簡潔,那么我們直接放一張源碼截圖,按著截圖說一下源碼。 showImg(https://segmentfault.com/img/re...

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

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

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

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

    NSFish 評論0 收藏0
  • Codeigniter 4.0-dev 源碼學(xué)習(xí)筆記之五——相對于 3.x 的變化

    摘要:支持命名空間是沒有支持命名空間的。配置文件不再是簡單數(shù)組了新的配置文件是以對象組織的,各個配置以對象的屬性形式暴露出來。此文可以轉(zhuǎn)載,但轉(zhuǎn)載前需要發(fā)郵件到進(jìn)行溝通,未溝通的均視作侵權(quán)。 前言 CI 為了追上大家的腳步,這次跨了一大步,盡量使用了更多的流行設(shè)計理念,甚至連 PHP 的支持版本都是從 7 開始起步的。我在之前閱讀源碼的同時也發(fā)現(xiàn)了很多變化的地方,在此把已經(jīng)發(fā)現(xiàn)的列舉出來,不...

    Youngdze 評論0 收藏0
  • Codeigniter 4.0-dev 源碼學(xué)習(xí)筆記之七—— View 視圖

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

    LiangJ 評論0 收藏0

發(fā)表評論

0條評論

MSchumi

|高級講師

TA的文章

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