mistralys / application-utils-collections
用于处理静态项集合的接口、特性和类,类似于枚举,并具有有用的获取方法。
1.1.2
2024-07-25 14:59 UTC
Requires
- php: >=7.4
- mistralys/application-utils-core: >=2.2.3
Requires (Dev)
- phpstan/phpstan: >=1.10
- phpunit/phpunit: >=9.6
README
用于处理静态项集合的接口、特性和类,类似于枚举,并具有有用的获取方法。
本质上,它允许用最少的代码创建这样的集合
$basil = Herbs::getInstance()->getByID(Herbs::BASIL); echo $basil->getID(); // basil echo $basil->getName(); // Basil
foreach(Herbs::getInstance()->getAll() as $herb) { echo $herb->getName(); }
这是Application Utils生态系统的一部分。
原则
基本原理是对于数据类型有一个集合类,它知道该类型所有可能的值,以及一个表示该类型单个值的记录类。
集合和记录通过它们的getID()
方法的返回类型来区分。
目前,仅支持字符串和整数类型。
实现
有两种方式实现集合
- 通过扩展抽象基类(例如
BaseStringPrimaryCollection
) - 通过实现接口和特性(例如
StringPrimaryCollectionTrait
)
第二种方式在处理已经扩展了另一个类的类时非常有用。
记录没有抽象基类,只有一个包含具有相关返回类型的getID()
方法的接口。
用法
单元测试类中有字符串和整数集合的示例实现