對laravel框架你瞭解多少,為什麼說是優雅的框架

Laravel00發表於2022-02-20

文章來自-微信公眾號:PHP面試題


面試PHP,有時候也會被問起使用的框架的一些問題,這裡就框架Laravel給大家做了一個總結。

laravel框架最大的特點和優秀之處就是集合了php比較新的特點,以及各種各樣的設計模式,Ioc模式,依賴注入等


一、Laravel有哪些特點

1 強大的rest router:用簡單的回撥函式就可以呼叫,快速繫結controllerrouter

2 artisan:命令列工具,很多手動的工作都自動化

3 可繼承的模板,簡化view的開發和管理

4 blade模板:渲染速度更快

5 ORM運算元據庫

6 migration:管理資料庫和版本控制

7 測試功能也很強大

8 composer也是亮點

9 laravel框架引入了門面,依賴注入,Ioc模式,以及各種各樣的設計模式等


二、架構模式

laravel框架是使用了服務元件化的開發模式,由多個服務提供者構成了元件,再由多個元件提供不同的服務,然後是多個服務構成了專案

服務提供者是應用配置的核心,是通過 register方法中繫結服務到服務容器的。


三、涉及到的設計模式

laravel框架使用了大量設計模式,使模組之間耦合度很低,服務容器可以方便的擴充套件框架功能以及編寫測試。

1.ORM - 物件關係對映模式

2 依賴注入與IOC容器 - 策略模式

3 監聽與觸發 - 觀察者模式

4 門面模式 - 靜態代理

還有其他的,比如註冊服務的時候用到單例模式等。


四、服務方面

能快速開發出功能,自帶各種方便的服務,比如資料驗證、佇列、快取、資料遷移、測試、artisan 命令列等等,還有強大的 ORMartisan強大的命令列工具,實現自動化。

Laravel安全功能有效地利用了鹽雜湊和加密碼機制,Bcrypt雜湊演算法”來建立加密密碼。


五、框架的其他知識點

服務容器:是一個用於管理類依賴和執行依賴注入的強大工具。其實質是通過建構函式或者某些情況下通過「setter」方法將類依賴注入到類中。

門面:為應用服務容器中的繫結類提供了一個「靜態」介面 ,優點:在維護時能夠提供更加易於測試、更加靈活、簡明優雅的語法。

契約:用來規劃服務提供者的格式、方法、引數等,給服務提供者規範了一定約束。

反射:主要用來動態地獲取系統中類、例項物件、方法等語言構件的資訊,通過發射API函式可以實現對這些語言構件資訊的動態獲取和動態操作等。

後期靜態繫結:用於在繼承範圍內引用靜態呼叫的類,即在類的繼承過程中,使用的類不再是當前類,而是呼叫的類。


六、生命週期

生命週期如下:

入口檔案-請求web伺服器匯入這個檔案-載入 Composer 生成的自動載入啟動核心檔案-核心啟動(服務提供者啟動框架的各種元件)-交給路由分發到到(控制器,中介軟體等)-邏輯處理-返回結果


七、laravel框架運用到的repository模式的主要思想

建立一個資料操作代理層,把controller裡的資料操作剝離出來,這樣做有幾個好處:

1 把資料處理邏輯分離使得程式碼更容易維護

2 資料處理邏輯和業務邏輯分離,可以對這兩個程式碼分別進行測試

3 減少程式碼重複

4 降低程式碼出錯的機率

5 讓controller程式碼的可讀性大大提高


還有其他的,大家可以留言做總結哈!

本作品採用《CC 協議》,轉載必須註明作者和本文連結
溫馨提示:微信搜尋並關注   學Laravel  裡面有兩套Laravel課程:【laravel7.x 從入門到核心架構講解】 與 【Laravel高階實戰教程42集】,直接獲取就可以了,學習與交流可加入:Laravel技術交流微信群

相關文章