class EnumRequirement
Hierarchy
- class \Symfony\Component\Routing\Requirement\EnumRequirement implements \Symfony\Component\Routing\Requirement\Stringable
Expanded class hierarchy of EnumRequirement
File
-
vendor/
symfony/ routing/ Requirement/ EnumRequirement.php, line 16
Namespace
Symfony\Component\Routing\RequirementView source
final class EnumRequirement implements \Stringable {
private string $requirement;
/**
* @template T of \BackedEnum
*
* @param class-string<T>|list<T> $cases
*/
public function __construct(string|array $cases = []) {
if (\is_string($cases)) {
if (!is_subclass_of($cases, \BackedEnum::class, true)) {
throw new InvalidArgumentException(\sprintf('"%s" is not a "BackedEnum" class.', $cases));
}
$cases = $cases::cases();
}
else {
$class = null;
foreach ($cases as $case) {
if (!$case instanceof \BackedEnum) {
throw new InvalidArgumentException(\sprintf('Case must be a "BackedEnum" instance, "%s" given.', get_debug_type($case)));
}
$class ??= $case::class;
if (!$case instanceof $class) {
throw new InvalidArgumentException(\sprintf('"%s::%s" is not a case of "%s".', get_debug_type($case), $case->name, $class));
}
}
}
$this->requirement = implode('|', array_map(static fn($e) => preg_quote($e->value), $cases));
}
public function __toString() : string {
return $this->requirement;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
EnumRequirement::$requirement | private | property | |
EnumRequirement::__construct | public | function | @template T of \BackedEnum |
EnumRequirement::__toString | public | function |