jdecool / enum
此包已被弃用,不再维护。未建议替代包。
PHP的另一个Enum实现
v1.0.0
2020-12-07 23:43 UTC
Requires
- php: ^8.0
Requires (Dev)
- phpunit/phpunit: ^9.5
- vimeo/psalm: ^4.3
This package is auto-updated.
Last update: 2022-02-24 20:21:24 UTC
README
PHP的另一个Enum实现。
弃用
⚠️ 此项目不再活跃维护。
原生enum自PHP 8.1版本开始出现:[PHP枚举](https://php.ac.cn/enumerations) 如果您的项目正在运行PHP 8.1+或您的库将其作为最低要求,则应使用它而不是此库。
为什么?
为什么要创建另一个enum包?
我通常根据需要使用两个enum实现:[myclabs/php-enum](https://github.com/myclabs/php-enum/) 或 [marc-mabe/php-enum](https://github.com/marc-mabe/php-enum)。
我赞赏第一个 myclabs/php-enum
的简单性,但它有一个大的缺陷:两次访问相同的enum值不会返回相同的类实例。
这就是为什么我有时使用第二个 marc-mabe/php-enum
,但它的缺点是,不可能有私有常量来表示我们的enum值。因此,这些常量都是公开的。
这就是为什么我决定创建自己的enum实现,它具有 myclabs/php-enum
的简单性和 marc-mabe/php-enum
的强大功能。
安装
此库需要PHP >= 8.0,您可以使用Composer轻松安装它。
composer require jdecool/enum
声明
use JDecool\Enum\Enum; class MyEnum extends Enum { public const ENUM_1 = 'value_1'; protected const ENUM_2 = 'value_2'; private const ENUM_3 = 'value_3'; }
使用
$value1 = MyEnum::ENUM_1(); $value2 = MyEnum::ENUM_2(); $value3 = MyEnum::ENUM_3();