<?php namespace OCA\OrganizationFolders\Enum; trait FromNameEnum { public static function fromName(string $name) { foreach(self::cases() as $status) { if($name === $status->name){ return $status; } } throw new \ValueError("$name is not a valid value for enum " . self::class ); } public static function fromNameOrValue(int|string $scalar) { if(gettype($scalar) == "integer") { return self::tryFrom($scalar); } else { return self::fromName($scalar); } } }