在印度IT外包崛起的時候,他們的成功秘訣之一就是高度的工程素養,能夠寫出標準化的程式碼。本文我們來說一說Laravel框架最佳實踐的一些知識,如果大家都能遵循這些法則,那麼PHP程式設計師能夠更容易理解別人的程式碼。
單一職責原則(SRP)
一個類或者一個方法(method)應該有且只有一個職責(responsibility)。
錯誤示範:
最佳實踐:
大模型,小控制器
在MVC架構模式當中,提倡模型(Model)要大,而控制器(Controller)要儘量精簡。控制器當中,不可以有與資料庫相關的程式碼。
錯誤示範:
最佳實踐:
表單驗證
將表單驗證從控制器中移到Request類中去。
錯誤示範:
最佳實踐:
業務邏輯應該放在Service類
根據單一職責原則(SRP),控制器只能有一種職責,因此業務邏輯應該從控制器移到服務類當中。
錯誤示範:
最佳實踐:
不要重複自己原則(DRY)
系統中的每一個部分,都應該具有單一性、明確性和權威性。相同的一段程式碼,不可在系統中重複兩次(寫成一個函式)。此外,在Laravel框架下面,Blade等其它範疇的程式碼也都應該可複用。
錯誤示範:
最佳實踐:
優先Eloquent而不是Query Builder和原生SQL
優先Collection而不是陣列
錯誤示範:
最佳實踐:
批次賦值
錯誤示範:
最佳實踐:
Blade模板檔案不可以有查詢資料庫的程式碼
Blade模板檔案不能有JS和CSS,PHP類檔案也不能有HTML程式碼
程式碼中的字串寫到配置檔案/語言檔案/常量裡
使用Laravel社群接受的標準工具,而不是第三方
遵循Laravel的命名慣例
可能的話,使用更短、可讀性更強的語法
更多例項
使用IoC或者Facade,而不是new關鍵詞
Laravel的控制器等類都是在容器內建立的,容器透過反射機制給建構函式注入需要的依賴。
使用config()而不是env()
本文翻譯自:https://tony-stark.medium.com/larave-best-practices-for-developers-2021-19cf662f7de8