멋진 새 PHP Enum 유형에 몇 가지 유용한 enum 특성을 추가하는 PHP용 Composer 패키지입니다.
지금까지의 패키지는 다음을 제공합니다.
UnitEnum::valueArray(): array
메서드입니다.UnitEnum::valueList(string $separator = ', '): string
메서드입니다.패키지는 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
디렉토리에 대해 실행되는 규칙이 포함되어 있습니다.
원격 스타일 적용을 위해 phpcsfixer
자동으로 실행하도록 구성된 GitHub Action이 있습니다.
로컬 스타일 적용을 위해 phpcsfixer
실행하도록 구성된 작성기 스크립트 composer style
있습니다.
원격 테스트의 경우 main
분기 또는 PR 분기에서 테스트 도구 모음을 자동으로 실행하는 GitHub Action 설정이 있습니다.
로컬 테스트를 위해 PHP + PHPUnit + xdebug의 Alpine CLI 릴리스를 포함하는 사전 구축된 Docker 컨테이너가 있습니다. 이는 프로젝트를 테스트하기 위해 설정되었으며 다음을 통해 설정할 수 있습니다.
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
해당 테스트에는 패키지의 프로덕션 준비 구현을 위한 기능 테스트가 있습니다. 현재 단위 테스트가 없습니다.
다음 명령을 사용하여 테스트 컨테이너에서 셸을 쉽게 열 수도 있습니다.
composer docker-shell
릴리스에 대한 모든 프로젝트 변경 사항은 아래에 문서화되어야 합니다. 버전 관리는 SemVer 표준을 따릅니다.
[Git 변경 사항] README가 변경되었습니다.
var_dump
활용하여 UnitEnum::valueArray()
에서 반환된 배열 내의 결과 유형을 보여줍니다.UnitEnum
기본 유형을 활용했습니다. [Git 변경 사항] 최초 릴리스.