php enum enhancements
v1.0.1 - README changes
PHP 的 Composer 套件,為輝煌的新 PHP Enum 類型添加了一些有用的枚舉特徵。
到目前為止,該包提供了;
UnitEnum::valueArray(): array
方法,該方法將 Enum 中的所有值作為 Enum 值的同等類型數組傳回UnitEnum::valueList(string $separator = ', '): string
方法,該方法將 Enum 中的所有值作為逗號分隔的列表字串傳回該軟體包在 Packagist 上以 othyn/php-enum-enhancements 的形式提供。
進入您想要安裝它的專案並執行以下 Composer 命令以取得最新版本:
composer require othyn/php-enum-enhancements
如需更全面的使用範例,您可以查看測試套件。不過,我將在下面展示一些基本的用法範例。
<?php
namespace App Enums ;
use Othyn PhpEnumEnhancements Traits EnumEnhancements ;
enum TestEnum
{
use EnumEnhancements;
case Alpha;
case Bravo;
case Charlie;
case Delta;
case Echo;
}
var_dump (TestEnum:: valueArray ());
// Results in the following being printed:
// array(5) {
// [0]=>
// string(5) "Alpha"
// [1]=>
// string(5) "Bravo"
// [2]=>
// string(7) "Charlie"
// [3]=>
// string(5) "Delta"
// [4]=>
// string(4) "Echo"
// }
<?php
namespace App Enums ;
use Othyn PhpEnumEnhancements Traits EnumEnhancements ;
enum TestEnum
{
use EnumEnhancements;
case Alpha;
case Bravo;
case Charlie;
case Delta;
case Echo;
}
var_dump (TestEnum:: valueList ());
// Results in the following being printed:
// string(34) "Alpha, Bravo, Charlie, Delta, Echo"
var_dump (TestEnum:: valueList (separator: ' : ' ));
// Results in the following being printed:
// string(30) "Alpha:Bravo:Charlie:Delta:Echo"
<?php
namespace App Enums ;
use Othyn PhpEnumEnhancements Traits EnumEnhancements ;
enum TestStringBackedEnum: string
{
use EnumEnhancements;
case Alpha = ' alpha ' ;
case Bravo = ' bravo ' ;
case Charlie = ' charlie ' ;
case Delta = ' delta ' ;
case Echo = ' echo ' ;
}
var_dump (TestStringBackedEnum:: valueArray ());
// Results in the following being printed:
// array(5) {
// [0]=>
// string(5) "alpha"
// [1]=>
// string(5) "bravo"
// [2]=>
// string(7) "charlie"
// [3]=>
// string(5) "delta"
// [4]=>
// string(4) "echo"
// }
<?php
namespace App Enums ;
use Othyn PhpEnumEnhancements Traits EnumEnhancements ;
enum TestStringBackedEnum: string
{
use EnumEnhancements;
case Alpha = ' alpha ' ;
case Bravo = ' bravo ' ;
case Charlie = ' charlie ' ;
case Delta = ' delta ' ;
case Echo = ' echo ' ;
}
var_dump (TestStringBackedEnum:: valueList ());
// Results in the following being printed:
// string(34) "alpha, bravo, charlie, delta, echo"
var_dump (TestStringBackedEnum:: valueList (separator: ' : ' ));
// Results in the following being printed:
// string(30) "alpha:bravo:charlie:delta:echo"
<?php
namespace App Enums ;
use Othyn PhpEnumEnhancements Traits EnumEnhancements ;
enum TestIntBackedEnum: int
{
use EnumEnhancements;
case One = 1 ;
case Two = 2 ;
case Three = 3 ;
case Four = 4 ;
case Five = 5 ;
}
var_dump (TestIntBackedEnum:: valueArray ());
// Results in the following being printed:
// array(5) {
// [0]=>
// int(1)
// [1]=>
// int(2)
// [2]=>
// int(3)
// [3]=>
// int(4)
// [4]=>
// int(5)
// }
<?php
namespace App Enums ;
use Othyn PhpEnumEnhancements Traits EnumEnhancements ;
enum TestIntBackedEnum: int
{
use EnumEnhancements;
case One = 1 ;
case Two = 2 ;
case Three = 3 ;
case Four = 4 ;
case Five = 5 ;
}
var_dump (TestIntBackedEnum:: valueList ());
// Results in the following being printed:
// string(13) "1, 2, 3, 4, 5"
var_dump (TestIntBackedEnum:: valueList (separator: ' : ' ));
// Results in the following being printed:
// string(9) "1:2:3:4:5"
大多數開發過程都包含在易於使用的 Docker 容器中。
專案.php-cs-fixer.dist.php
配置包含此儲存庫遵循的規則並將針對./src
和./tests
目錄運行。
對於遠端樣式實施,有一個 GitHub Action 配置為自動運行phpcsfixer
。
對於本地樣式實施,有一個配置為運行phpcsfixer
作曲家腳本composer style
。
對於遠端測試,有一個 GitHub Action 設定可以在main
分支或 PR 分支上自動執行測試套件。
對於本機測試,有一個預先建置的 Docker 容器,其中包含 PHP + PHPUnit + xdebug 的 Alpine CLI 版本。這是為了測試專案而設定的,可以透過以下方式設定:
composer docker-build
這應該會觸發 Docker Compose 來建立映像。然後,您可以透過以下方式啟動容器:
composer docker-up
所有編寫的程式碼都有測試,可以透過以下方式運行:
# PHPUnit with code coverage report
composer test
# PHPUnit with code coverage report, using local phpunit and xdebug
composer test-local
在這些測試中,有針對包的生產就緒實現的功能測試。目前沒有單元測試。
您也可以使用以下命令輕鬆地在測試容器中開啟 shell:
composer docker-shell
發布的任何和所有項目變更都應記錄在下面。版本控制遵循 SemVer 標準。
[Git 更改] 自述文件更改。
var_dump
來示範從UnitEnum::valueArray()
傳回的陣列中的結果類型。UnitEnum
基本類型。 [Git 更改] 初始版本。