成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

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

MSchumi / 3092人閱讀

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

寫(xiě)在前面:

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

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

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

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

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

筆記時(shí)間:2017年4月。

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

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

CI 4 的下載和基本部署

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

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

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

CI 4 源碼目錄

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

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

application

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

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

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

system

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

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

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

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

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

test

此目錄是寫(xiě)測(cè)試用例的地方,里邊有個(gè)readme.md 文件,可以參考此文件部署以及書(shū)寫(xiě)測(cè)試用例。

writable

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

總結(jié)

本篇文章算是一個(gè)開(kāi)頭,總體預(yù)覽一下 CI 的基本結(jié)構(gòu)。下一篇文章會(huì)涉及到 index.php 和 bootstrap.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://m.hztianpu.com/yun/22898.html

相關(guān)文章

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

    摘要:通過(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ō)一下源碼。 showImg(https://segmentfault.com/img/re...

    _ivan 評(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í)筆記之四——詳細(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
  • Codeigniter 4.0-dev 源碼學(xué)習(xí)筆記之五——相對(duì)于 3.x 的變化

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

    Youngdze 評(píng)論0 收藏0
  • 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

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

0條評(píng)論

MSchumi

|高級(jí)講師

TA的文章

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