念念不忘,必有迴響。有一口氣,點一盞燈,有燈就有人。

如何對 Collection 做 Assertion?

如何對 Collection 做 Assertion?

Collection 並非 PHP 原生的型別,是 Laravel 所擴充,因此 PHPUnit 並無法直接對其做 assertion,本文介紹兩種方式,一種是使用 PHPUnit 的 assertArraySubset(),一種是自己寫 collection macro,各有其優缺點,可視需求決定要使用哪種方法。

如何使用 PhpStorm 將 new 重構成依賴注入?

如何使用 PhpStorm 將 new 重構成依賴注入?

為了可測試性與低耦合,我們會使用依賴注入取代 new 建立物件,對於 legacy code,當然可以使用手動的方式重構,透過 PhpStorm,我們可以使用更簡單的方式將 new 重構成 依賴注入

如何使用 PhpStorm 重構成 Closure?

如何使用 PhpStorm 重構成 Closure?

在實務上,我們常常會遇到將重複程式碼重構成 closure 的需求,PhpStorm 沒辦法直接重構,需透過一些技巧。

如何使用 PhpStorm 將專案發佈到 GitHub?

如何使用 PhpStorm 將專案發佈到 GitHub?

若要將專案發佈到 GitHub,實務上除了先在本機建立 local git repository 外,還要在 GitHub 建立 remote git repository,然後建立 remote branch,最後才能 push 到 GitHub,這些動作都可以在 PhpStorm 內簡單的完成。

如何使用 PhpStorm 對 Collection 除錯 ?

如何使用 PhpStorm 對 Collection 除錯 ?

Laravel 的 Collection 在實務上非常好用,除了 Eloquent 直接回傳 Collection 外,還擴充了很多 method,讓我們可以使用 higher order function 與 fluent 風格開發,讓程式可讀性更高。不過 Collection 的除錯就比較麻煩,本文使用 PhpStorm 內建的 Watches,讓我們可以在不用修改程式碼的前提下,快速對 Collection 除錯。

如何使用 PhpStorm 重構 Namespace ?

如何使用 PhpStorm 重構 Namespace ?

在 TDD 開發流程,為了第一個 綠燈,一開始可能在同一個 namespace 下只有一個 class,但隨著重構的進行,可能重構出更多的 class 與 interface,為了更加的高內聚,低耦合,我們可能會將更相關的 class 與 interface 重構到其他 namespace,導致相依的 class 也必須修改,在重構 namepsace 時,PhpStorm 可以幫我們將相依的 class 一併修改,非常方便。

如何使用 PhpStorm 對 Laravel 除錯?

如何使用 PhpStorm 對 Laravel 除錯?

傳統 PHP 大都使用 echo()var_dump()dd() 除錯,此種方式必須破壞原本程式碼,而且所能觀察的變數有限,也無法明確得知程式執行的流程。PhpStorm 支援 Xdebug,允許我們設定中斷點,程式將停在中斷點設定之處,讓我們透過 Step Into、Step Over、Step Out 的方式除錯,非常方便。

如何設定 PhpStorm 的 Directories?

如何設定 PhpStorm 的 Directories?

PhpStorm 最強的三個功能為 : Refactoring、Debugging、與 Inspection,但由於 PHP 生態是眾多 framework,而每個 framework 的目錄架構也不太一樣,因此必須先在 PhpStorm 設定 directories,才能發揮 PhpStorm 的強悍功能,而不只是文字編輯器而已。

如何使用變數讀取 property?

如何使用變數讀取 property?

傳統我們會使用 if else 判斷,讀取不同的 property,但由於 JavaScript 與 PHP 動態語言的特性,我們可以將要讀取的 property 名稱以變數表示,直接以該變數讀取 property。

如何對工廠模式開放封閉?

如何對工廠模式開放封閉?

將建構物件的邏輯封裝在工廠模式,已經達到 90% 的開放封閉,最少其他 class 都已經開放封閉,將來所有的邏輯修改只剩下工廠模式,若能將工廠模式也開放封閉,那就太好了。