PHP Enum - 상용구 매핑 제거

6222 단어 typesconstantsenumphp
이봐. public function getAll(): array // returns some static array of strings 와 같은 상용구 매핑을 제거하는 데 도움이 되는 작은 패키지를 함께 만들기로 결정했습니다.

상수를 정의하기만 하면 Reflection API 덕분에 내 Enum\Enum 클래스가 나머지 작업을 처리합니다.

다음은 예입니다.

<?php
namespace App;

use Enum\Enum;

class Status extends Enum
{
    const ACTIVE   = 'active';
    const INACTIVE = 'inactive';
    const BLOCKED  = 'blocked';
}

$status = new Status();

$status->toArray(); // will return [ 'active' => 'active', 'inactive' => 'inactive', 'blocked' => 'blocked' ]
$status->hasValue('active'); // will return boolean
$status->hasKey('blocked'); // will return boolean
Enum 의 생성자에는 $caseLower=true$caseUpper=false 2개의 매개변수가 있습니다.

배열 키의 대소문자를 상수 대소문자와 동일하게 하려면 false$caseLower로 전달하십시오.

$status = new Status(false);

배열 키의 대소문자를 대문자로 지정하려면 false$caseLower로, true$caseUpper로 전달합니다.

$status = new Status(false, true);

방금 사용자 정의 유형Enum을 만들었습니다. 이제 이를 사용하여 클래스에서 더 나은 유형의 속성을 가질 수 있습니다. 예를 들어:

<?php

namespace App;

use Enum\Enum;

class Person
{
    public int $identifier;
    public string $name;
    public Enum $status;
}

이제 어떤 유형에 내$status가 있는지 정확히 알고 해당 유형으로 어떻게 작업해야 하는지 정확히 알고 있습니다. 원시 배열을 사용하는 것보다 이것이 훨씬 낫다는 것을 알았습니다.

GitHub 저장소:


하코뱌센 / 페넘


Enum을 확장하는 클래스의 모든 상수는 enum 옵션의 배열로 변환됩니다.





PHP 열거형


This package provides you a class named Enum. It is designed to help you to structure your Enum classes easily and get rid of the most boilerplate code.


용법


설치


작성기를 통해 설치:
composer require codebot/phpenum

사용하는 방법


모든 Enum 클래스는 추상Enum 클래스를 확장해야 합니다.Enum를 확장하는 클래스의 모든 상수는 enum 옵션으로 변환됩니다.
<?php

namespace App;

use Enum\Enum;

class Status extends Enum
{
    const ACTIVE   = 'active';
    const INACTIVE = 'inactive';
    const BLOCKED  = 'blocked';
}

$status = new Status();

$status->toArray(); // will return [ 'active' => 'active', 'inactive' => 'inactive', 'blocked' => 'blocked' ]
$status->hasValue('active'); // will return boolean
$status->hasKey('blocked'); // will return boolean

Enum 생성자에는 $caseLower=true 및…

View on GitHub


좋은 하루 되세요!

좋은 웹페이지 즐겨찾기