2018年11月20日 星期二

《面試官別再問》Laravel 模組

服務提供者是什麼?
服務提供者是所有Laravel 應用程序引導啟動的中心, Laravel 的核心服務器、註冊服務容器綁定、事件監聽、中間件、路由註冊以及我們的應用程序都是由服務提供者引導啟動的。
Contract的原理?
Contract(契約)是laravel 定義框架提供的核心服務的接口。 Contract 和Facades 並沒有本質意義上的區別,其作用就是使接口低耦合、更簡單。
IoC容器是什麼?

IoC(Inversion of Control)譯為「控制反轉」,也被叫做「依賴注入」(DI)。什麼是「控制反轉」?對象A 功能依賴於對象B,但是控制權由對象A 來控制,控制權被顛倒,所以叫做「控制反轉」,而「依賴注入」是實現IoC 的方法,就是由IoC 容器在運行期間,動態地將某種依賴關係注入到對象之中。
其作用簡單來講就是利用依賴關係注入的方式,把複雜的應用程序分解為互相合作的對象,從而降低解決問題的複雜度,實現應用程序代碼的低耦合、高擴展。

Laravel中的服務容器是用於管理類的依賴和執行依賴注入的工具。
參考網址

依賴注入的原理?

@overtrue一句話解釋:依賴注入只是一種模式:把當前類依賴的第三方實例通過參數傳入的形式引入,但是如果手寫依賴注入會比較費勁,管理起來也比較麻煩,因為要關心那麼多類的依賴,於是就有了一個容器來自動解決這個問題,利用反射API檢查類型,然後遞歸解決依賴。
Facade是什麼?
Facades(一種設計模式,通常翻譯為外觀模式)提供了一個"static"(靜態)接口去訪問註冊到IoC 容器中的類。提供了簡單、易記的語法,而無需記住必須手動注入或配置的長長的類名。此外,由於對PHP 動態方法的獨特用法,也使測試起來非常容易。
了解過Composer?實現原理是什麼?
Composer 是PHP 的一個依賴管理工具。工作原理就是將已開發好的擴展包從packagist.org composer 倉庫下載到我們的應用程序中,並聲明依賴關係和版本控制。

沒有留言:

張貼留言