richard-ejem / enum
PHP的超轻量级枚举类型
1.0
2017-06-21 08:22 UTC
Requires
- php: >=7
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-15 03:39:32 UTC
README
简单的特质,用于创建枚举类。
将您的枚举分解成独立的类,并通过您的应用程序验证您正在传递有效的枚举值。
安装
建议使用composer安装
composer require richard-ejem/enum
示例
class UserRole { use \Ejem\Enum\EnumTrait; const GUEST = 'guest'; const USER = 'user'; const ADMIN = 'admin'; } class User { /** @var string UserRole enum */ private $role; /** @throws \Ejem\Enum\InvalidEnumValueException */ public function __construct(string $role) { $this->setRole($role); } public function getRole(): string { return $this->role; } /** @throws \Ejem\Enum\InvalidEnumValueException */ public function setRole(string $role): void { UserRole::assertValidValue($role); $this->role = $role; } // ... more user stuff }
其他功能
// Validate without throwing exception. // imagine you are importing users from an old system, // setting all unsupported roles to GUEST: $role = UserRole::isValidValue($row['role']) ? $row['role'] : UserRole::GUEST; // Retrieve all possible values. // Assign random color to a shape $values = Color::getPossibleValues(); $shape->setColor($values[mt_rand(0, count($values)-1)]);