mistralys/application-utils-collections

用于处理静态项集合的接口、特性和类,类似于枚举,并具有有用的获取方法。

1.1.2 2024-07-25 14:59 UTC

This package is auto-updated.

Last update: 2024-08-25 15:12:49 UTC


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()方法的返回类型来区分。

目前,仅支持字符串和整数类型。

实现

有两种方式实现集合

  1. 通过扩展抽象基类(例如BaseStringPrimaryCollection
  2. 通过实现接口和特性(例如StringPrimaryCollectionTrait

第二种方式在处理已经扩展了另一个类的类时非常有用。

记录没有抽象基类,只有一个包含具有相关返回类型的getID()方法的接口。

用法

单元测试类中有字符串和整数集合的示例实现