文章來自-微信公眾號:PHP面試題
面試PHP,有時候也會被問起使用的框架的一些問題,這裡就框架Laravel
給大家做了一個總結。
laravel
框架最大的特點和優秀之處就是集合了php比較新的特點,以及各種各樣的設計模式,Ioc
模式,依賴注入等
一、Laravel有哪些特點
1 強大的rest router
:用簡單的回撥函式就可以呼叫,快速繫結controller
和router
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
命令列等等,還有強大的 ORM
,artisan
強大的命令列工具,實現自動化。
Laravel安全功能有效地利用了鹽雜湊和加密碼機制,Bcrypt
雜湊演算法”來建立加密密碼。
五、框架的其他知識點
服務容器:是一個用於管理類依賴和執行依賴注入的強大工具。其實質是通過建構函式或者某些情況下通過「setter
」方法將類依賴注入到類中。
門面:為應用服務容器中的繫結類提供了一個「靜態」介面 ,優點:在維護時能夠提供更加易於測試、更加靈活、簡明優雅的語法。
契約:用來規劃服務提供者的格式、方法、引數等,給服務提供者規範了一定約束。
反射:主要用來動態地獲取系統中類、例項物件、方法等語言構件的資訊,通過發射API
函式可以實現對這些語言構件資訊的動態獲取和動態操作等。
後期靜態繫結:用於在繼承範圍內引用靜態呼叫的類,即在類的繼承過程中,使用的類不再是當前類,而是呼叫的類。
六、生命週期
生命週期如下:
入口檔案-請求web
伺服器匯入這個檔案-載入 Composer
生成的自動載入啟動核心檔案-核心啟動(服務提供者啟動框架的各種元件)-交給路由分發到到(控制器,中介軟體等)-邏輯處理-返回結果
七、laravel框架運用到的repository模式的主要思想
建立一個資料操作代理層,把controller
裡的資料操作剝離出來,這樣做有幾個好處:
1 把資料處理邏輯分離使得程式碼更容易維護
2 資料處理邏輯和業務邏輯分離,可以對這兩個程式碼分別進行測試
3 減少程式碼重複
4 降低程式碼出錯的機率
5 讓controller
程式碼的可讀性大大提高
還有其他的,大家可以留言做總結哈!
本作品採用《CC 協議》,轉載必須註明作者和本文連結