vendor/symfony/routing/Matcher/ExpressionLanguageProvider.php line 23
<?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\Matcher;use Symfony\Component\ExpressionLanguage\ExpressionFunction;use Symfony\Component\ExpressionLanguage\ExpressionFunctionProviderInterface;use Symfony\Contracts\Service\ServiceProviderInterface;/*** Exposes functions defined in the request context to route conditions.** @author Ahmed TAILOULOUTE <ahmed.tailouloute@gmail.com>*/class ExpressionLanguageProvider implements ExpressionFunctionProviderInterface{private ServiceProviderInterface $functions;public function __construct(ServiceProviderInterface $functions){$this->functions = $functions;}public function getFunctions(): array{$functions = [];foreach ($this->functions->getProvidedServices() as $function => $type) {$functions[] = new ExpressionFunction($function,static fn (...$args) => sprintf('($context->getParameter(\'_functions\')->get(%s)(%s))', var_export($function, true), implode(', ', $args)),fn ($values, ...$args) => $values['context']->getParameter('_functions')->get($function)(...$args));}return $functions;}public function get(string $function): callable{return $this->functions->get($function);}}