若將資料庫邏輯都寫在 model,會造成 model 的肥大而難以維護,基於SOLID原則,我們應該使用 Repository 模式輔助 model,將相關的資料庫邏輯封裝在不同的 repository,方便中大型專案的維護。
點燈坊
初學者學習 Laravel 時分兩種,一種是乖乖的將程式填入 MVC 架構內,導致 controller 與 model 異常的肥大,日後一樣很難維護;一種是常常不知道程式該寫在哪一個 class 內而猶豫不決,畢竟傳統 PHP 都是一個頁面一個檔案。本文整理出最適合 Laravel 的中大型專案架構,兼具容易維護、容易擴充與容易重複使用的特點,並且容易測試。
git將檔案分成三個階段 : working directory、stage與repository,要進repository之前,必須先進stage,但實務上可能下了git add
之後,才反悔發現這個檔案不應該進stage,必須從stage移除,由於必須考慮該檔案是否已經存在於repository,所以必須下不同的git指令才能達成效果。
很羨慕 Visual Studio 測試與除錯功能嗎?剛安裝好的 PhpStorm 只能算是一個文字編輯器,一旦設定了 PHP Interpreter、Xdebug 與 PHPUnit 之後,PhpStorm 就搖身一變成為全功能的 IDE,功能足以媲美 Visual Studio。
若你常常使用 Hexo 寫 blog,久而久之就會出現自己的格式與常用的 tag,若每次 hexo new
就得做相同的 copy & paste
就會很煩,也就是 Hexo 預設的 文章範本
已經無法滿足我們,進而想自行修改,然後希望每次 hexo new
時,都能套用自訂的範本。
一般我們取變數名稱
時,可能會使用英文縮寫
,但此時PhpStorm會很盡責
的幫我們做Spell Check
,若變數的英文拼字錯誤,會在變數下方加上波浪底線
,由於PhpStorm有很強悍的warning功能,每個warning都值得我們特別注意,但若因為Spell Check
的warning而造成大家神經緊張,那就太不值得了,所以我個人是將此功能關閉。
我們知道好的OOP並不是急著馬上套Design Pattern,而是先遵守SOLID原則;也知道TDD教我們先寫測試,將來可以安心的重構。但我們實務上該如何實踐SOLID呢?事實上,TDD不僅僅是先寫測試
而已,伴隨著TDD的開發流程,會讓我們會不知不覺的實踐SOLID。
若外部API有throw exception,呼叫API的函式就必須加上try...catch
做例外處理,如Java可以在編譯的時候幫你檢查是否忘了加try…catch,但因為PHP不用編譯,所以無法靠compiler幫我們檢查,但透過PHPDoc的@thorws
與PHP Inspections
這個外掛,可以讓我們寫code的當下,PhpStorm就自動幫我們檢查是否忘了加try…catch。