如何在 PHP 中測試 Trait

在使用 Laravel Livewire 的時候,我時常會把 livewire component 中可以重複使用的邏輯或是方法抽出並放在 Trait 中。Laravel Livewire 官方文件中也建議使用 Trait 來處理經常重複使用的邏輯。詳細可以參考下面兩...

使用 Laravel 團隊的 Coding Style,簡單介紹 Laravel Pint

之前我有分享過一篇文章簡單介紹 PHP CS Fixer,開發團隊可以使用 PHP CS Fixer 來統一團隊的 coding style,而 PHP CS Fixer 預設會使用 PHP-FIG 提出的 PSR-12 來當作整理 coding style 的依據。但其實每個團隊可...

簡單介紹 PHP 測試框架 Pest (下)

繼上回簡單介紹 PHP 測試框架 - Pest (上) 後,讓我們緊接著繼續看看 Pest 的其他實用功能。使用 Datasets 測試多組資料如果你想要在一個流程測試中,測試多筆資料,你會怎麼做呢?雖然我們可以把測試拆開,為每筆資...

簡單介紹 PHP 測試框架 - Pest (上)

Pest 是由 Laravel 團隊中 Nuno Maduro 所開發的 PHP 測試框架,是建構於 PHPUnit 上再包裝版本,除了完全兼容 PHPUnit,Pest 還提供更多優雅且實用的測試方法。前陣子發現 Laracasts 上原來有 Pest From Scatch 的...

簡單介紹 PHP 的生成器 (Generators)

PHP 的生成器 (Generators) 提供了一個簡單的方式去實現迭代器 (Iterrators)。如官方文件所說:A generator allows you to write code that uses foreach to iterate over a set of data without needing to build a...

PHP 中的 ...$args,這個 ... 是什麼?

你可能在 PHP 中看過 ...$args 的程式碼,這個 ... 又稱為參數拆包 (arguments unpacking, AKA spread operator),是在 PHP 5.6 加入的功能。... 可以將一個陣列中的參數拆開來並放到新的陣列中。$foo = [1, 2, 3];...

簡單介紹 Laravel 的服務容器

Laravel 提供一種名為服務容器(Service Container)的工具,用來管理類與類之間的依賴與依賴注入。但在介紹服務容器之前,先來介紹一下什麼是依賴?什麼是依賴注入?什麼是依賴?如果一個A類中的方法需要使用到B...

檢查與修正團隊的 Code Style,簡單介紹 PHP CS Fixer

每位碼農的人生成長歷程不盡相同,因此在 Coding 上可能都會有各自的習慣或是風格。在團隊協作開發的時候,不同的 Coding 風格可能會給團隊造成一些困擾,例如:有人喜歡用 4 個空格排版,但有人覺得 2 個空格才剛好...

簡單介紹 PHP 8.1 的列舉 (Enumerations)

PHP 8.1 在前陣子正式推出!加入不少新功能,其中包含最多人期待的列舉 (Enumerations)。列舉可以用來定義一系列的常數設定值,避免在開發時使用無效的設定值。簡單的 enum 設定如下。// 沒有回退 (non-backed) 的 e...

PHP 的引用傳遞與多階層分類

在 PHP 中,我們可以使用等號 ( = ) 將一個值賦予給一個新的變數(應該很多程式語言都是這樣)。$a = 'Hello'; $b = $a;這時候 $b 會新增一個記憶體位址來存放值,如果對 $b 進行修改,並不會影響到 $a 的值。$a =...