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

資訊專欄INFORMATION COLUMN

Codeigniter 4.0-dev 版源碼學(xué)習(xí)筆記之五——相對于 3.x 的變化

Youngdze / 977人閱讀

摘要:支持命名空間是沒有支持命名空間的。配置文件不再是簡單數(shù)組了新的配置文件是以對象組織的,各個(gè)配置以對象的屬性形式暴露出來。此文可以轉(zhuǎn)載,但轉(zhuǎn)載前需要發(fā)郵件到進(jìn)行溝通,未溝通的均視作侵權(quán)。

前言

CI 為了追上“大家”的腳步,這次跨了一大步,盡量使用了更多的流行設(shè)計(jì)理念,甚至連 PHP 的支持版本都是從 7 開始起步的。我在之前閱讀源碼的同時(shí)也發(fā)現(xiàn)了很多變化的地方,在此把已經(jīng)發(fā)現(xiàn)的列舉出來,不過肯定是不全的,因?yàn)槲疫€沒讀完(逃跑~)。等再發(fā)現(xiàn)新的值得一聊的,并且能湊夠一篇文章的內(nèi)容的話,我會(huì)再繼續(xù)寫一篇的。

支持命名空間

CI 3 是沒有支持命名空間的。導(dǎo)致有些人相加一層 service 的話是借助 model 或者是 library 實(shí)現(xiàn)的,用起來總是不倫不類。不知道有多少等 CI 4 ,其中有部分原因就是等它支持命名空間呢。

更好的支持 Composer

之前的版本,雖然支持了 Composer ,但是因?yàn)椴恢С置臻g,導(dǎo)致不能發(fā)揮 composer 的全部功力。于是大部分人依舊是去官網(wǎng)下了 zip 包,解壓后吭哧吭哧自己造輪子。新版本應(yīng)該能夠很好的發(fā)揮 Composer 的功效了, packages 上的各種組件隨便用了。

view 不再是 load 進(jìn)來的了

之前,我們要處理 view 的話,要使用load->view 感覺上 controller 是主體, view 是被加載進(jìn)來的。 CI 4 中 view 處理完畢后僅僅是個(gè)字符串,要在 controller 里 return 會(huì)核心里,由核心再處理輸出,這樣整個(gè)流程就更清晰了。

代碼和資源文件分離了

新的代碼組織方式要求將 web 站點(diǎn)根目錄指向到 public 目錄, public 目錄僅僅一個(gè)入口文件以及靜態(tài)的圖片和 CSS 資源等,代碼文件都在上一級目錄中分布,這不僅可以使 web 目錄更加簡潔清晰,同時(shí)也能增加一些安全性。

配置文件不再是簡單數(shù)組了

新的配置文件是以對象組織的,各個(gè)配置以對象的屬性形式暴露出來。

路由變化
增加閉包形式定義路由

可以用閉包形式直接定義一個(gè)簡單的路由,此路由可以不對應(yīng) controller ,舉例如下:

$routes->add("feed", function()
   {
        return "Simple Hello World.";
    {
);
可以定義路由組

如果某一批路徑有著相似的前綴,可以使用路由組,如后臺程序,通常喜歡給每個(gè)路由前邊都加上一個(gè) admin 用于區(qū)分后臺于前臺的頁面路徑。此時(shí)可以如下定義:

$routes->group("admin", function($routes)
{
    $routes->add("users", "AdminUsers::index");
    $routes->add("blogs",  "AdminBlogs::index");
});

相當(dāng)于定義了 admin/users 、 admin/blogs 兩個(gè)路由。

可以直接定義 RESTful 形式路由

可以很方便以以下形式定義此類型路由:

$routes->resource("users");

// 以上形式等價(jià)于:
$routes->get("users",               "Users::listAll");
$routes->get("users/(:segment)",    "Users::show/$1");
$routes->post("users",              "Users::create");
$routes->put("users/(:segment)",    "Users::update/$1");
$routes->delete("users/(:segment)", "Users::delete/$1");

當(dāng)然,瀏覽器不能直接處理 put 等形式請求,需要借助 post 并加一個(gè) _method 的隱藏域來完成。

關(guān)閉自動(dòng)路由

可以像 Laravel 一樣僅識別已經(jīng)配置的路由,關(guān)閉后,處理完配置路由后如還沒有發(fā)現(xiàn)匹配控制器將不會(huì)再繼續(xù)按著約定去自動(dòng)尋找控制器文件。設(shè)置方法如下:

$routes->setAutoRoute(false);
小結(jié)

以上是目前發(fā)現(xiàn)的其中一部分變化,其實(shí) CI 4 變化還是比較大的。我在查看一部分源碼后感覺有了很多 Laravel 的影子,或者說是現(xiàn)在比較流行的框架設(shè)計(jì)的思路。以后在后續(xù)的閱讀過程中發(fā)現(xiàn)更多的有趣變化,我會(huì)繼續(xù)摘錄分享。

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

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

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

相關(guān)文章

  • 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)。 寫在前面: 為什么選擇開發(fā)過程中的 CI 4 作為源碼解讀版本:(1)首先我選 CI 是因?yàn)樗暗姆€(wěn)定版都是相對比較輕量小巧的,而且可以認(rèn)為是簡單的。(2)為什么沒有選...

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

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

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

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

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

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

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

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

    asce1885 評論0 收藏0

發(fā)表評論

0條評論

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