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 更改] 初始版本。