everully / laravel-enum-on-steroids
此包提供了Enum特性,用于加速Laravel应用程序的开发。
v0.1.4
2024-08-06 05:24 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^10.0|^11.0
Requires (Dev)
- laravel/pint: ^1.17
- pestphp/pest: ^2.34
- pestphp/pest-plugin-laravel: ^2.0
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