Heim > Backend-Entwicklung > PHP-Problem > Wie verwaltet man PHP Enum einheitlich?

Wie verwaltet man PHP Enum einheitlich?

Guanhui
Freigeben: 2023-03-01 16:16:02
nach vorne
2383 Leute haben es durchsucht

Wie verwaltet man PHP Enum einheitlich?

Installieren

composer require fangx/php-enum
Nach dem Login kopieren

Erstellen

Verwenden Sie den Befehl ./vendor/bin/enum, um eine Aufzählungsklasse zu erstellen.

./vendor/bin/enum FooEnum --enum="1=foo" --enum="b=bar" --path=Enums
Nach dem Login kopieren

Dieser Befehl erstellt standardmäßig eine FooEnum.php-Datei im Enums-Verzeichnis des aktuellen Verzeichnisses. Der Inhalt der Datei lautet wie folgt:

<?phpnamespace Enums;use Fangx\Enum\AbstractEnum;class FooEnum extends AbstractEnum{
    const FOO = "f", __FOO = "foo";
    const BAR = "b", __BAR = "bar";}
Nach dem Login kopieren

Verwenden Sie standardmäßig die Aufzählungsklasse

, um FangxEnumAbstractEnum zu erben. Die folgenden Methoden können statisch aufgerufen werden:

  • toArray(Format $format = null, Filter $filter = null)
  • toJson(Format $format = null, Filter $filter = null)
  • desc($key, $default = &#39;Undefined&#39;)

Alle Aufzählungen abrufen Werte

<?phpclass FooEnum extends \Fangx\Enum\AbstractEnum{
    const FOO = &#39;f&#39;, __FOO = &#39;foo&#39;;
    const BAR = &#39;b&#39;, __BAR = &#39;bar&#39;;}/**
 * [&#39;f&#39; => 'foo', 'b' => 'bar']
 */FooEnum::toArray();
Nach dem Login kopieren

Beschreibungsinformationen des Aufzählungswerts abrufen

<?phpclass FooEnum extends \Fangx\Enum\AbstractEnum{
    const FOO = &#39;f&#39;, __FOO = &#39;foo&#39;;
    const BAR = &#39;b&#39;, __BAR = &#39;bar&#39;;}/**
 * "foo"
 */FooEnum::desc(&#39;f&#39;);/**
 * "bar"
 */FooEnum::desc(FooEnum::BAR);
Nach dem Login kopieren

Verwenden Sie das Format, um die Rückgabe einzuschränken Wert

<?phpclass FooFormat implements \Fangx\Enum\Contracts\Format{
    public function parse(\Fangx\Enum\Contracts\Definition $definition): array
    {
        return [[&#39;key&#39; => $definition->getKey() , 'value' => $definition->getValue()]];
    }}class FooEnum extends \Fangx\Enum\AbstractEnum{
    const FOO = 'f', __FOO = 'foo';
    const BAR = 'b', __BAR = 'bar';}/**
 * [['key' => 'f', 'value' => 'foo'], ['key' => 'b', 'value' => 'bar'],]
 */$format = new FooFormat();FooEnum::toArray($format);
Nach dem Login kopieren

Verwenden Sie Regeln zum Filtern von Aufzählungswerten.

class FooFilter implements \Fangx\Enum\Contracts\Filter{
    public function __invoke(\Fangx\Enum\Contracts\Definition $definition)
    {
        return $definition->getKey() === 'f';
    }}/**
 * ['f' => 'foo']
 */$filter = new FooFilter();FooEnum::toArray(null, $filter);
Nach dem Login kopieren

Verwenden Sie benutzerdefinierte Sammlungen, da alle Aufzählungstypen mit .FooEnum
<?phpclass BarEnum extends \Fangx\Enum\AbstractEnum{
    public function all()
    {
        return [
            new \Fangx\Enum\Definition('f', 'foo'),
            new \Fangx\Enum\Definition('b', 'bar'),
        ];
    }}
Nach dem Login kopieren

                                                                                                                                                                                         

Empfohlenes Tutorial: „PHP

Das obige ist der detaillierte Inhalt vonWie verwaltet man PHP Enum einheitlich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:learnku.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage