溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php框架底層源碼的分析

發(fā)布時(shí)間:2020-09-18 10:39:20 來(lái)源:億速云 閱讀:161 作者:小新 欄目:編程語(yǔ)言

小編給大家分享一下php框架底層源碼的分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

我們需要從幾個(gè)方向入手:

一、 框架中是如何加載這些類庫(kù)的?  

我認(rèn)為學(xué)習(xí)框架底層 這一步是必須的,我們要知道框架是如何能加載不同目錄下的不同文件,并且如果是通過(guò)composer安裝的類庫(kù) 也得知道他是如何被加載到框架的,這個(gè)時(shí)候可以去跟進(jìn)think\Loader.php 文件即可。

那我們研究完畢這個(gè)類庫(kù)之后,我們還得自行的去做下思考, 比如我想自己創(chuàng)建一個(gè)自定義singwa目錄(如圖一) 也想把它被加載到框架中,如何做? 所以學(xué)習(xí)框架底層一定要帶著問(wèn)題和思考的態(tài)度去學(xué)習(xí),這樣成長(zhǎng)肯定很快。

二、設(shè)計(jì)模式學(xué)習(xí)(工廠模式、單例模式、注冊(cè)樹(shù)模式、門面模式等)

三、反射機(jī)制學(xué)習(xí)

四、依賴注入 控制反轉(zhuǎn) 等學(xué)習(xí)

五、研究框架中的 容器、門面Facade

think/Container think\Facade

六、路由

這里地方的分析 可以直接通過(guò)index.php 入口文件 一步一步的跟進(jìn),看看框架里面走了哪些流程, 可能這里面會(huì)用到一些其他的工具類,比如

配置文件(config),

環(huán)境變量:Env

并且還得思考框架的路由是如何做的,在App類中 會(huì)走到routeInit路由初始化這個(gè)方法,這里面是路由的核心,它會(huì)引入其他的基礎(chǔ)路由類庫(kù)。

七、底層控制器、模型、視圖的基礎(chǔ)類庫(kù)分析

八、其他一些工具類的分析 比如: 異常處理、緩存等核心類庫(kù)分析

總之上面這些基本涵蓋了框架的核心內(nèi)容,在研究框架源碼的過(guò)程是一件枯燥和痛苦的事情,但是我們需要堅(jiān)持,閱讀框架代碼不是看一遍就完事了,我們需要多看幾遍,并且在看的過(guò)程中我們還需要做點(diǎn)如下幾點(diǎn):

1、 在您有疑問(wèn)的地方打上斷點(diǎn),輸出相關(guān)的內(nèi)容出來(lái) 看看他到底返回什么內(nèi)容,因?yàn)檫@樣更加直觀,便于您真正意義上理解

2、 我們需要思考 它為什么要這樣做? 我這樣做可以嗎? 能不能變通、或者有沒(méi)有更好的方法? 因?yàn)閹е鴨?wèn)題和思考的態(tài)度去學(xué)習(xí) 更加有利于您的個(gè)人成長(zhǎng)。

3、在研究源碼的時(shí)候有不懂得地方肯定很正常的,這個(gè)時(shí)候一定要記住多利用百度或者谷歌

4、一定一定要多畫(huà)圖, 因?yàn)槟パ芯吭创a然后還能通過(guò)圖的方式畫(huà)出來(lái) 這更加有基于您學(xué)習(xí)以及深入理解,它真的能起到事半功倍的作用!

以上是php框架底層源碼的分析的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI