PHP code example of decodelabs / enumerable
1. Go to this page and download the library: Download decodelabs/enumerable library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
decodelabs / enumerable example snippets
use DecodeLabs\Enumerable\Unit\Named;
use DecodeLabs\Enumerable\Unit\NamedTrait;
enum MyNamedUnitEnum implements Named
{
use NamedTrait;
const OptionOne;
const OptionTwo;
const OptionThree;
}
MyNamedUnitEnum::OptionOne->getName(); // 'OptionOne'
MyNamedUnitEnum::OptionOne->getKey(); // 'OptionOne'
MyNamedUnitEnum::OptionOne->getLabel(); // 'Option One'
MyNamedUnitEnum::OptionOne->getValue(); // 'OptionOne'
use DecodeLabs\Enumerable\Unit\Indexed;
use DecodeLabs\Enumerable\Unit\IndexedTrait;
enum MyIndexedUnitEnum implements Indexed
{
use IndexedTrait;
const OptionOne;
const OptionTwo;
const OptionThree;
}
MyNamedUnitEnum::OptionOne->getName(); // 'OptionOne'
MyNamedUnitEnum::OptionOne->getKey(); // 0
MyNamedUnitEnum::OptionOne->getLabel(); // 'Option One'
MyNamedUnitEnum::OptionOne->getValue(); // 'OptionOne'
use DecodeLabs\Enumerable\Backed\NamedString;
use DecodeLabs\Enumerable\Backed\NamedStringTrait;
enum MyNamedStringBackedEnum : string implements NamedString
{
use NamedStringTrait;
const OptionOne = 'one';
const OptionTwo = 'two';
const OptionThree = 'three';
}
MyNamedStringBackedEnum::OptionOne->getName(); // 'OptionOne'
MyNamedStringBackedEnum::OptionOne->getKey(); // 'OptionOne'
MyNamedStringBackedEnum::OptionOne->getLabel(); // 'Option One'
MyNamedStringBackedEnum::OptionOne->getValue(); // 'one'
use DecodeLabs\Enumerable\Backed\LabelledString;
use DecodeLabs\Enumerable\Backed\LabelledStringTrait;
enum MyLabelledStringBackedEnum : string implements LabelledString
{
use LabelledStringTrait;
const OptionOne = 'one';
const OptionTwo = 'two';
const OptionThree = 'three';
}
MyLabelledStringBackedEnum::OptionOne->getName(); // 'OptionOne'
MyLabelledStringBackedEnum::OptionOne->getKey(); // 'OptionOne'
MyLabelledStringBackedEnum::OptionOne->getLabel(); // 'one'
MyLabelledStringBackedEnum::OptionOne->getValue(); // 'one'
use DecodeLabs\Enumerable\Backed\ValueString;
use DecodeLabs\Enumerable\Backed\ValueStringTrait;
enum MyValueStringBackedEnum : string implements ValueString
{
use ValueStringTrait;
const OptionOne = 'one';
const OptionTwo = 'two';
const OptionThree = 'three';
}
MyValueStringBackedEnum::OptionOne->getName(); // 'OptionOne'
MyValueStringBackedEnum::OptionOne->getKey(); // 'one'
MyValueStringBackedEnum::OptionOne->getLabel(); // 'Option One'
MyValueStringBackedEnum::OptionOne->getValue(); // 'one'
use DecodeLabs\Enumerable\Backed\NamedInt;
use DecodeLabs\Enumerable\Backed\NamedIntTrait;
enum MyNamedIntBackedEnum : int implements NamedInt
{
use NamedIntTrait;
const OptionOne = 1;
const OptionTwo = 2;
const OptionThree = 3;
}
MyNamedIntBackedEnum::OptionOne->getName(); // 'OptionOne'
MyNamedIntBackedEnum::OptionOne->getKey(); // 'OptionOne'
MyNamedIntBackedEnum::OptionOne->getLabel(); // 'Option One'
MyNamedIntBackedEnum::OptionOne->getValue(); // 1
use DecodeLabs\Enumerable\Backed\ValueInt;
use DecodeLabs\Enumerable\Backed\ValueIntTrait;
enum MyValueIntBackedEnum : int implements ValueInt
{
use ValueIntTrait;
const OptionOne = 1;
const OptionTwo = 2;
const OptionThree = 3;
}
MyValueIntBackedEnum::OptionOne->getName(); // 'OptionOne'
MyValueIntBackedEnum::OptionOne->getKey(); // 1
MyValueIntBackedEnum::OptionOne->getLabel(); // 'Option One'
MyValueIntBackedEnum::OptionOne->getValue(); // 1
MyEnum::fromKey('<key>');
MyEnum::fromValue('<value>');
MyEnum::fromName('<name>');
MyEnum::fromIndex('<index>');
// or
MyEnum::tryFromKey('<key>');
MyEnum::tryFromValue('<value>');
MyEnum::tryFromName('<name>');
MyEnum::tryFromIndex('<index>');
// Key to label map
MyEnum::getOptions() => [
'<key>' => '<label>',
];
// Key to value map
MyEnum::getValues() => [
'<key>' => '<value>',
];
// Alias to cases()
MyEnum::getCases() => [
'<key>' => '[MyEnum::<name>]',
];