Warnung Wenn Sie PHP 8.1 oder höher verwenden, empfehlen wir Ihnen, native PHP -Enums anstelle dieses Pakets zu verwenden.
Wir können einige Wartungs Patches veröffentlichen, aber die Unterstützung für dieses Paket wird ansonsten eingestellt.
Fühlen Sie sich frei, unseren Code zu geben und ihn an Ihre Bedürfnisse anzupassen.
Diese Bibliothek bietet eine Aufzählungs- / Aufzählungsimplementierung für PHP.
map() -Methode abgebildet werden. Erstellen Sie zuerst eine neue Klasse, die RexlabsEnumEnum erweitert und Folgendes ausführen;
map() -Methode an: <?php
namespace Rexlabs Enum Readme ;
use Rexlabs Enum Enum ;
/**
* Class City
*
* @package RexlabsEnumReadme
*
* @method static static BRISBANE()
* @method static static MELBOURNE()
* @method static static SYDNEY()
*/
class City extends Enum
{
const BRISBANE = ' Brisbane ' ;
const MELBOURNE = ' Melbourne ' ;
const SYDNEY = ' Sydney ' ;
// OPTIONAL - Provide a map() method if you would like to
// map additional data, which will be available from the ->value() method
public static function map (): array
{
return [
self :: BRISBANE => [ " state " => " QLD " , " population " => "" ],
self :: MELBOURNE => [ " state " => " VIC " , " population " => " 5m " ],
self :: SYDNEY => [ " state " => " NSW " , " population " => " 5m " ],
];
}
}
// Static access
echo City:: BRISBANE ; // "Brisbane"
echo City:: MELBOURNE ; // "Melbourne"
City:: names (); // (array)["BRISBANE", "BRISBANE", "SYDNEY"]
City:: keys (); // (array)["Brisbane", "Melbourne", "Sydney"]
City:: keyForName ( ' BRISBANE ' ); // "Brisbane"
City:: nameForKey ( ' Melbourne ' ); // "MELBOURNE"
City:: isValidKey ( ' Sydney ' ); // (boolean)true
City:: isValidKey ( ' Paris ' ); // (boolean)false
// Getting an instance - all return a City instance.
$ city = City:: BRISBANE ();
$ city = City:: instanceFromName ( ' BRISBANE ' );
$ city = City:: instanceFromKey ( ' Brisbane ' );
// Working with an instance
$ city -> name (); // "BRISBANE"
$ city -> key (); // "Brisbane"
$ city -> value ()[ ' population ' ]; // null - no value mapped
$ city -> is (City:: BRISBANE ); // (boolean)true
$ city -> is (City:: BRISBANE ()); // (boolean)true
$ city -> is (City:: SYDNEY ()); // (boolean)false
$ city -> isNot (City:: SYDNEY ()); // (boolean)true
$ city -> isAnyOf ([City:: BRISBANE ()]); // (boolean)true
$ city -> isNoneOf ([City:: BRISBANE ()]); // (boolean)false
// Or ...
City:: SYDNEY ()-> key (); // "Sydney"
City:: SYDNEY ()-> value (); // (array)["state"=>"NSW", "population"=>"5m"] In Ihrem Projekt zu installieren:
composer require rexlabs/enum Jetzt können Sie Ihr Enum Objekt als Abhängigkeit eingeben:
<?php
function announceCity ( City $ city ) {
echo "{ $ city -> key ()} is located in { $ city -> value ()[ " state " ]} , population: { $ city -> value ()[ " population " ]}n" ;
}
// Get a new instance
announceCity (City:: SYDNEY ()); // "Sydney is located in NSW, population: 5m" Jede Instanz von Enum enthält die folgenden Methoden:
Gibt den konstanten Namen zurück.
$ enum -> name (); Gibt den Wert/Taste zurück, der der Konstante in der Deklaration const MY_CONST = 'key' zugeordnet ist.
$ enum -> key (); Gibt den Wert (if-any) zurück, der zugeordnet ist (im von map() zurückgegebenen Array). Wenn kein Wert zugeordnet ist, gibt diese Methode null zurück.
$ enum -> value ();Gibt true zurück, wenn diese Instanz mit der angegebenen konstanten Schlüssel- oder Aufzählungsinstanz übereinstimmt.
$ enum -> is (City:: SYDNEY ); // Compare to constant key
$ enum -> is (City:: SYDNEY ()); // Compare to instance Die __toString() -Methode wird definiert, um den konstanten Namen zurückzugeben.
( string )City:: SYDNEY (); // "SYDNEY" Gibt ein Array zurück, das die konstanten Schlüssel zu einem Wert ordnet. Diese Methode kann optional in einer Unterklasse implementiert werden. Die Standardimplementierung gibt ein Array von Schlüssel zurück, die null zugeordnet sind.
Gibt eine Reihe von Enum -Instanzen zurück.
Gibt eine Reihe konstanter Schlüssel zurück.
Gibt ein Array von Werten zurück, die in map() definiert sind. Wenn map() nicht implementiert ist, wird ein Array von Nullwerten zurückgegeben.
Gibt eine Reihe aller mit der Klasse deklarierten konstanten Namen zurück.
Gibt ein assoziatives Array von Constant_name => Schlüssel zurück, für alle konstanten Namen, die innerhalb der Klasse deklariert sind.
Gibt den Schlüssel für den angegebenen konstanten Namen zurück.
Gibt den konstanten Namen für den angegebenen Schlüssel zurück (die Umkehrung des keyForName ).
Gibt den Wert (oder Null, falls nicht zugeordnet) für den angegebenen Schlüssel (wie in der map() -Methode deklariert) zurück.
Gibt den Schlüssel für den angegebenen Wert zurück (wie in der map() -Methode deklariert).
HINWEIS: Wenn in der
map()-Methode doppelte Werte enthalten sind, wird nur der erste Schlüssel zurückgegeben.
Erstellen Sie eine Instanz dieses Enum aus dem angegebenen konstanten Namen.
Erstellen Sie eine Instanz dieses Enum aus dem angegebenen Schlüssel.
Gibt true zurück, wenn der angegebene Schlüssel vorhanden ist.
Gibt true zurück, wenn der angegebene konstante Name (Fallempfindlich) in der Klasse deklariert wurde.
Wirft eine RexlabsEnumExceptionsInvalidKeyException aus, wenn der angegebene Schlüssel nicht vorhanden ist.
Tests ausführen:
composer testsUm den Berichterstattungsbericht auszuführen:
composer coverage Der Deckungsbericht wird an ./tests/report/index.html ausgegeben
Beiträge sind willkommen. Bitte geben Sie eine Pull-Request ein oder erstellen Sie ein Problem. Ihr eingereichter Code sollte mit PSR-1/PSR-2-Standards formatiert werden.