我自己的經驗呢!是把原生的PHP轉換成Laravel框架,那個時候最主要希望可以好維護,但是,把權限啦~商業邏輯啦~全部都會寫在Controller 最後你就會發現
Controller 越來越大
Controller 越來越大
Controller 越來越大
如果又不是前後端分離的方式拆開的話,Controller 會非常非常亂。
之前就開始想辦法前後端拆開,所以開始研究RESTful API 的設計方式
至少API都依照功能去放置對應的位置,
如果公司有前端的工程師就可以想怎麼改就怎麼改前端畫面,讀的到資料就好,也不會有重複撰寫相同性質的程式碼。
好了!Controller 很肥怎麼辦。這要怎麼辦呢?!
Service 模式
以下幾點都可以考慮的程式碼搬到 Service 檔案中
- 牽扯到外部行為:如發送Email(Laravel有寫好的Mail實例可以使用),使用外部API..
- 昨天有提到功能性的API用於確認折扣碼是否可以用的邏輯
- 或是電商平台有購買數量不同有優惠運費折扣的商業邏輯
可以降低 Controller 程式碼的臃腫。
最主要的兩個原則外部服務
、商業邏輯
,把他拆成 Service
明天開始依照這兩個原則把程式碼移出Controller吧!
題外話
還有人會把 Service
再拆開來! 還會有專門寫查詢資料庫邏輯的地方 Repository
模式,還有可以輔助 View 的部分 Presenter
模式,但可能小弟我碰到的系統還沒有到如此龐大的地步,感覺拆開來只是非常臃腫,檔案數量很大!
這是目前的看法,日後如果有更深一層的體悟!有機會再跟大家分享~
安裝VSCode 的PHPUnit測試套件
https://marketplace.visualstudio.com/items?itemName=recca0120.vscode-phpunit
這是台灣一位大大,Recca Tsai大大製作的套件!可以在VSCode 圖形化的介面執行測試
在VSCode套件搜尋框查詢 「phpunit」找到下方圖示顯示之套件並安裝
重新啟動 VSCode 可以在左側工具列看到像實驗室三角燒杯的圖式
點開來以後如右方紅色框框,Laravel 已經有預設的測試程式(這時候記得伺服器是要有運行的狀態喔!),點選上方的三角形開始鍵!發就會跑測試,測試通過就會像上圖一樣顯示綠色勾勾
明天先來撰寫 測試程式吧!
爲什麽不用PHPSTROM
我沒有購買PHPSTROM,聽很多大大都說不錯用,有機會的話也來嘗試看看。 🙂
VSCode非常好用,不要猶豫