Enums have out of the box the methods from and tryFrom. One drawback is that
you cannot use them to create enum objects with the name of the enum.
This allows you to do so.
use Henzeb\Enumhancer\Concerns\Getters;
enum YourEnum: string {
use Getters;
case ENUM = 'your_enum';
case ENUM2 = 'your_other_enum';
const ConstantEnum = self::ENUM;
}
/** get */
YourEnum::get('ENUM'); // returns YourEnum::ENUM
YourEnum::get('ConstantEnum'); // returns YourEnum::ENUM
YourEnum::get('0'); // returns YourEnum::ENUM
YourEnum::get(0); // returns YourEnum::ENUM
YourEnum::get('ENUM2'); // returns YourEnum::ENUM2
YourEnum::get('1'); // returns YourEnum::ENUM2
YourEnum::get(1); // returns YourEnum::ENUM2
YourEnum::get('your_enum'); // returns YourEnum::ENUM
YourEnum::get('your_other_enum'); // returns YourEnum::ENUM2
YourEnum::get('ENUM3'); // throws exception
/** tryGet */
YourEnum::tryGet('ENUM'); // returns YourEnum::ENUM
YourEnum::tryGet('ConstantEnum'); // returns YourEnum::ENUM
YourEnum::tryGet('0'); // returns YourEnum::ENUM
YourEnum::tryGet(1); // returns YourEnum::ENUM
YourEnum::tryGet('ENUM2'); // returns YourEnum::ENUM2
YourEnum::tryGet('your_enum'); // returns YourEnum::ENUM
YourEnum::tryGet('your_other_enum'); // returns YourEnum::ENUM2
YourEnum::tryGet('ENUM3'); // returns null
YourEnum::tryGet(3); // returns null
/** getArray */
YourEnum::getArray(
['ENUM', 'your_other_enum']
); // returns [YourEnum::ENUM, YourEnum::ENUM2]
YourEnum::getArray(['ENUM', 'unknown']); // throws exception
/** tryGetArray */
YourEnum::tryArray(
['ENUM', 'your_other_enum']
); // returns [YourEnum::ENUM, YourEnum::ENUM2]
YourEnum::tryArray(['ENUM', 'unknown']); // returns [YourEnum::ENUM]
How can I help you explore Laravel packages today?