everully/laravel-enum-on-steroids

此包提供了Enum特性,用于加速Laravel应用程序的开发。

v0.1.4 2024-08-06 05:24 UTC

This package is auto-updated.

Last update: 2024-09-06 05:30:26 UTC


README

此包提供了Enum特性,用于加速Laravel应用程序的开发。

需求

  • Laravel 9.0或更高版本。
  • PHP 8.1或更高版本。

安装

通过composer安装

composer require everully/laravel-enum-on-steroids

用法

EnumOnSteroids特性添加到您的Enum类中,以添加一些有用的方法。

use Everully\LaravelEnumOnSteroids\EnumOnSteroids;

enum StringEnum: string
{
    use EnumOnSteroids;

    case A = 'a';
    case B = 'b';
    case C = 'c';
}

可用方法

等于

检查枚举是否等于另一个枚举或字符串。

StringEnum::A->equals(StringEnum::A); // true

StringEnum::A->equals('a'); // true

StringEnum::A->equals(AnotherEnum::A); // false

StringEnum::A->equals('d'); // false

返回枚举的所有值数组。

StringEnum::values(); // ['a', 'b', 'c']

名称

返回枚举的所有名称数组。

StringEnum::names(); // ['A', 'B', 'C']

集合

返回包含枚举所有值的Laravel集合。

StringEnum::collection();
// Illuminate\Support\Collection<StringEnum>

收集

返回包含枚举所有值的Laravel集合。

StringEnum::collect(['a', 'b', 'c']);
// Illuminate\Support\Collection<StringEnum>

StringEnum::collect([StringEnum::A, StringEnum::B, StringEnum::C]);
// Illuminate\Support\Collection<StringEnum>

如果提供的字符串或对象不是有效的枚举值,则集合不会包含它。

StringEnum::collect(['a', 'invalid']);
// Only contains 'a'

StringEnum::collect([StringEnum::A, AnotherEnum::B]);
// Only contains 'a'

如果枚举具有提供的值,则返回true。

StringEnum::has('a'); // true
StringEnum::has(StringEnum::A); // true
StringEnum::has('invalid'); // false
StringEnum::has(AnotherEnum::A); // false

有任何

如果枚举有任何提供的值,则返回true。

StringEnum::hasAny(['a', 'invalid']); // true
StringEnum::hasAny([StringEnum::A, AnotherEnum::A]); // true
StringEnum::hasAny(['invalid', 'invalid2']); // false
StringEnum::hasAny([CopyStringEnum::A, CopyStringEnum::A]); // false

所有

如果枚举具有所有提供的值,则返回true。

StringEnum::hasAny(['a', 'b']); // true
StringEnum::hasAny([StringEnum::A, AnotherEnum::A]); // true
StringEnum::hasAny(['a', 'invalid']); // false
StringEnum::hasAny([StringEnum::A, CopyStringEnum::A]); // false