Upgrading Older Versions
From v2 To v3
The most important difference between 3.0 and 2.X versions:
The __default const is now uppercase __DEFAULT in order to fully comply with the PSR-1
standard.
This is a BC so if you want to use version 3.0, you have to check your codebase for enums that
have __default constants defined and rename them to __DEFAULT.
If you don't want to do this, you can safely keep using the 2.x versions.
From v1 To v2
Renamed Methods
getValue()->value()getDisplayText()->label()hasValue()->has()hasKey()->hasConst()
Consistent Naming
In order to be more straightforward, the following naming changes have been done:
- 'Display text' has become 'label'
- 'Key' has become 'const'
- 'Values' is intact
Removed Features
- strict comparison (
===) has been removed (is always==) toArray()never returns the '__default' key.
Null Values Must Be Explicit
It's not possible to have enums without values any more.
If you want to have a null value it is possible by explicitly setting one of the values to NULL:
class Progress extends \Konekt\Enum\Enum
{
const UNKNOWN = null;
const INITIALIZED = 1;
const COMPLETED = 2;
}
Then you can have a null value:
$unknown = Progress::create();
var_dump($unknown->value());
// output: NULL
New Static Methods
values(): returns all the values as an array.labels(): returns the labels (with fallback to values if no label defined). Elements are always strings.consts(): returns the const names in an array.create($value): factory method for creating an instance with valuereset(): Clears static class metadatadefaultValue(): static method to return the value of the class (__default const or null if unset)
Next: Creating Enums »