摘要:簡(jiǎn)述的生命周期采用了單一入口模式,應(yīng)用的所有請(qǐng)求入口都是文件。分發(fā)請(qǐng)求一旦應(yīng)用完成引導(dǎo)和所有服務(wù)提供者都注冊(cè)完成,將會(huì)移交給路由進(jìn)行分發(fā)。此外,由于對(duì)動(dòng)態(tài)方法的獨(dú)特用法,也使測(cè)試起來(lái)非常容易。
本書(shū)的 GitHub 地址:https://github.com/todayqq/PH...
Laravel 作為現(xiàn)在最流行的 PHP 框架,其中的知識(shí)較多,所以多帶帶拿出來(lái)寫(xiě)一篇。
簡(jiǎn)述 Laravel 的生命周期
Laravel 采用了單一入口模式,應(yīng)用的所有請(qǐng)求入口都是 public/index.php 文件。
注冊(cè)類(lèi)文件自動(dòng)加載器 : Laravel通過(guò) composer 進(jìn)行依賴(lài)管理,無(wú)需開(kāi)發(fā)者手動(dòng)導(dǎo)入各種類(lèi)文件,而由自動(dòng)加載器自行導(dǎo)入。
創(chuàng)建服務(wù)容器:從 bootstrap/app.php 文件中取得 Laravel 應(yīng)用實(shí)例 $app (服務(wù)容器)
創(chuàng)建 HTTP / Console 內(nèi)核:傳入的請(qǐng)求會(huì)被發(fā)送給 HTTP 內(nèi)核或者 console 內(nèi)核進(jìn)行處理
載入服務(wù)提供者至容器:
在內(nèi)核引導(dǎo)啟動(dòng)的過(guò)程中最重要的動(dòng)作之一就是載入服務(wù)提供者到你的應(yīng)用,服務(wù)提供者負(fù)責(zé)引導(dǎo)啟動(dòng)框架的全部各種組件,例如數(shù)據(jù)庫(kù)、隊(duì)列、驗(yàn)證器以及路由組件。
分發(fā)請(qǐng)求:一旦應(yīng)用完成引導(dǎo)和所有服務(wù)提供者都注冊(cè)完成,Request 將會(huì)移交給路由進(jìn)行分發(fā)。路由將分發(fā)請(qǐng)求給一個(gè)路由或控制器,同時(shí)運(yùn)行路由指定的中間件
服務(wù)提供者是什么?
服務(wù)提供者是所有 Laravel 應(yīng)用程序引導(dǎo)啟動(dòng)的中心, Laravel 的核心服務(wù)器、注冊(cè)服務(wù)容器綁定、事件監(jiān)聽(tīng)、中間件、路由注冊(cè)以及我們的應(yīng)用程序都是由服務(wù)提供者引導(dǎo)啟動(dòng)的。
IoC 容器是什么?
IoC(Inversion of Control)譯為 「控制反轉(zhuǎn)」,也被叫做「依賴(lài)注入」(DI)。什么是「控制反轉(zhuǎn)」?對(duì)象 A 功能依賴(lài)于對(duì)象 B,但是控制權(quán)由對(duì)象 A 來(lái)控制,控制權(quán)被顛倒,所以叫做「控制反轉(zhuǎn)」,而「依賴(lài)注入」是實(shí)現(xiàn) IoC 的方法,就是由 IoC 容器在運(yùn)行期間,動(dòng)態(tài)地將某種依賴(lài)關(guān)系注入到對(duì)象之中。其作用簡(jiǎn)單來(lái)講就是利用依賴(lài)關(guān)系注入的方式,把復(fù)雜的應(yīng)用程序分解為互相合作的對(duì)象,從而降低解決問(wèn)題的復(fù)雜度,實(shí)現(xiàn)應(yīng)用程序代碼的低耦合、高擴(kuò)展。
Laravel 中的服務(wù)容器是用于管理類(lèi)的依賴(lài)和執(zhí)行依賴(lài)注入的工具。
Facades 是什么?
Facades(一種設(shè)計(jì)模式,通常翻譯為外觀模式)提供了一個(gè)"static"(靜態(tài))接口去訪(fǎng)問(wèn)注冊(cè)到 IoC 容器中的類(lèi)。提供了簡(jiǎn)單、易記的語(yǔ)法,而無(wú)需記住必須手動(dòng)注入或配置的長(zhǎng)長(zhǎng)的類(lèi)名。此外,由于對(duì) PHP 動(dòng)態(tài)方法的獨(dú)特用法,也使測(cè)試起來(lái)非常容易。
Contract 是什么?
Contract(契約)是 laravel 定義框架提供的核心服務(wù)的接口。Contract 和 Facades 并沒(méi)有本質(zhì)意義上的區(qū)別,其作用就是使接口低耦合、更簡(jiǎn)單。
依賴(lài)注入的原理?
這個(gè)不解釋?zhuān)@是理解 IoC 容器的前提。
談?wù)?Laravel 和 YII 框架的區(qū)別
在 YII 框架中的路由是通過(guò)書(shū)寫(xiě) Controller、Action 間接定義路由,而 Laravel 中是在 route 路由文件中直接定義路由入口
Laravel 提供 ORM 對(duì)象關(guān)系映射,使讀寫(xiě)數(shù)據(jù)庫(kù)的操作更加簡(jiǎn)單
Laravel 提供更多的 Artisan 命令和腳手架開(kāi)發(fā)
Laravel 的 Composer 擴(kuò)展包比 Yii 框架更多,開(kāi)發(fā)更加高效
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/28157.html
摘要:擴(kuò)展閱讀收集的前端面試題和答案前端開(kāi)發(fā)面試題史上最全的前端面試題匯總及答案前端工程師手冊(cè)協(xié)議工作原理協(xié)議運(yùn)行機(jī)制的概述 本書(shū)的 GitHub 地址:https://github.com/todayqq/PH... 對(duì)于大公司,很少會(huì)有全棧工程師這個(gè)崗位,全棧是個(gè)花哨的詞,對(duì)于現(xiàn)在比較熱門(mén)的技術(shù),不論是 Vue 還是 Laravel,只要智商不差,看著文檔,都能寫(xiě)出一個(gè) CURD 來(lái),...
摘要:先說(shuō)一下面試時(shí)的心態(tài),剛?cè)腴T(mén)的程序員,技術(shù)實(shí)力不高,又大多不善言談,面試一旦遇到難題,很容易心態(tài)失衡驚慌失措語(yǔ)無(wú)倫次,最終丟掉了。其實(shí)大可不必,心態(tài)坦然,是面試必備的一點(diǎn)。 本書(shū)的 GitHub 地址:https://github.com/todayqq/PH... 作為一位程序員,面試過(guò)多次,也面試過(guò)很多人,最近又在找工作,總結(jié)一下面試經(jīng)驗(yàn)和面試題,希望可以幫到正在找工作的小伙伴們...
摘要:前端篇收集的前端面試題和答案前端開(kāi)發(fā)面試題史上最全的前端面試題匯總及答案前端工程師手冊(cè)協(xié)議工作原理協(xié)議運(yùn)行機(jī)制的概述協(xié)議篇原理原理解析的工作原理與的區(qū)別理解后端篇年的面試總結(jié)垃圾回收機(jī)制面向?qū)ο笤O(shè)計(jì)淺談?wù)f清楚是什么和的區(qū)別索引原理及慢查 前端篇 收集的前端面試題和答案 前端開(kāi)發(fā)面試題 史上最全的web前端面試題匯總及答案 前端工程師手冊(cè) HTTP協(xié)議:工作原理 SSL/TLS協(xié)議運(yùn)行...
摘要:本書(shū)的地址篇收集了一些常見(jiàn)的基礎(chǔ)進(jìn)階面試題,基礎(chǔ)的面試題不再作答。如何實(shí)現(xiàn)持久化持久化,將在內(nèi)存中的的狀態(tài)保存到硬盤(pán)中,相當(dāng)于備份數(shù)據(jù)庫(kù)狀態(tài)。相當(dāng)于備份數(shù)據(jù)庫(kù)接收到的命令,所有被寫(xiě)入的命令都是以的協(xié)議格式來(lái)保存的。 本書(shū)的 GitHub 地址:https://github.com/todayqq/PH... PHP 篇收集了一些常見(jiàn)的基礎(chǔ)、進(jìn)階面試題,基礎(chǔ)的面試題不再作答。 基礎(chǔ)篇 ...
閱讀 4042·2021-11-24 09:38
閱讀 1342·2021-10-19 11:42
閱讀 1899·2021-10-14 09:42
閱讀 2213·2019-08-30 15:44
閱讀 605·2019-08-30 14:04
閱讀 2958·2019-08-30 13:13
閱讀 2022·2019-08-30 12:51
閱讀 1030·2019-08-30 11:22