Server : Apache System : Linux server1.cgrithy.com 3.10.0-1160.95.1.el7.x86_64 #1 SMP Mon Jul 24 13:59:37 UTC 2023 x86_64 User : nobody ( 99) PHP Version : 8.1.23 Disable Function : NONE Directory : /home/dnlcambodia/public_html/Quotation/vendor/symfony/routing/Requirement/ |
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Routing\Requirement; use Symfony\Component\Routing\Exception\InvalidArgumentException; 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; } }