laravelflux / php-enum
此包已被放弃且不再维护。未建议替代包。
PHP 枚举实现
1.0.0
2018-02-11 19:48 UTC
Requires
- php: >=7.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ~2.0
- phpunit/phpunit: ~6.0
This package is auto-updated.
Last update: 2020-01-25 00:12:37 UTC
README
PHP 枚举实现
安装
安装此扩展的首选方式是通过 composer。
运行以下命令之一
php composer.phar require --prefer-dist laravelflux/php-enum "*"
或
"laravelflux/php-enum": "*"
将以下内容添加到您的 composer.json
文件的 require 部分。
可用方法
createByName()
- 使用值的名称创建新的类型实例。getValueByName()
- 通过值(标签)返回常量键createByValue()
- 使用值创建新的类型实例。listData()
- 返回包含常量值和标签的关联数组getLabel()
- 通过键返回常量标签getConstantsByName()
- 返回此类型的常量列表(按名称)。getConstantsByValue()
- 返回此类型的常量列表(按值)。isValidName()
- 检查名称是否对此类型有效。isValidValue()
- 检查值是否对此类型有效。
声明
<?php namespace App\Enums; use LaravelFlux\Enum\BaseEnum; class PostStatus extends BaseEnum { const PENDING = 0; const APPROVED = 1; const REJECTED = 2; const POSTPONED = 3; /** * @var array */ public static $list = [ self::PENDING => 'Pending', self::APPROVED => 'Approved', self::REJECTED => 'Rejected', self::POSTPONED => 'Postponed', ]; }
枚举创建
$status = new PostStatus(PostStatus::PENDING); // or you can use the magic methods $status = PostStatus::PENDING();
静态方法
PostStatus::getConstantsByValue() // ['PENDING', 'APPROVED', 'REJECTED', 'POSTPONED'] PostStatus::getConstantsByName() // ['PENDING' => 0, 'APPROVED' => 1, 'REJECTED' => 2, 'POSTPONED' => 3] PostStatus::isValidName(1) // false PostStatus::isValidName('APPROVED') // true PostStatus::isValidValue(1) // true PostStatus::isValidValue('Approved') // false PostStatus::listData() // ['Pending', 'Approved', 'Rejected', 'Postponed'] PostStatus::getLabel(1) // Approved PostStatus::getValueByName('Approved') // 1
类型提示和验证规则
<?php use App\Enums\PostStatus; class Post { /** * @var integer status */ public $status; public function setStatus(PostStatus $status) { $this->status = $status->getValue(); } public function getStatus(): PostStatus { return $this->status; } }