Aller au contenu

Points d'extension

phil/enums

La bibliothèque est du PHP simple : elle ne déclare ni service ni port. Une application l'étend par ce que déclarent ses propres enums.

PointComment
Le comportement d'une enumLes traits : le trait agrégé, ou les traits individuels dont une enum a besoin — voir Installation
Des métadonnées propres à l'applicationUne classe d'attribut qui étend Phil\Enums\Meta\AbstractMetaProperty, énumérée dans le #[Meta(...)] de l'enum ; elle peut remplacer transform(), defaultValue() et customMethodName() — voir Métadonnées
Des métadonnées apportées par un traitUn trait qui porte son propre #[Meta(...)] : ses propriétés méta sont lues après celles de l'enum, à l'exécution et par PHPStan
Les métadonnées que chaque cas doit avoir#[RequiredMeta(...)] sur l'enum, signalé par la règle PHPStan
D'autres noms à partir desquels un cas est analysé#[Alias(...)] sur le cas
Le cas donné lorsqu'aucun ne l'est#[DefaultCase] sur un cas
Quels cas suivent quels cas#[TransitionsTo(...)] sur chaque cas
Le typage pour PHPStanextension.neon, inclus à la main ou automatiquement par phpstan/extension-installer — voir PHPStan

Les propriétés méta fournies — Label, Description, Group, Weight, Alias — sont finales : une application qui veut un autre comportement écrit sa propre propriété méta plutôt que de les étendre.