Server IP : 15.235.198.142 / Your IP : 216.73.216.11 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ballsack 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /usr/share/php/Symfony/Component/DependencyInjection/ |
Upload File : |
<?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\DependencyInjection; use Symfony\Component\DependencyInjection\Exception\LogicException; use Symfony\Component\ExpressionLanguage\ExpressionFunction; use Symfony\Component\ExpressionLanguage\ExpressionFunctionProviderInterface; /** * Define some ExpressionLanguage functions. * * To get a service, use service('request'). * To get a parameter, use parameter('kernel.debug'). * To get an env variable, use env('SOME_VARIABLE'). * * @author Fabien Potencier <fabien@symfony.com> */ class ExpressionLanguageProvider implements ExpressionFunctionProviderInterface { private ?\Closure $serviceCompiler; private ?\Closure $getEnv; public function __construct(?callable $serviceCompiler = null, ?\Closure $getEnv = null) { $this->serviceCompiler = null === $serviceCompiler ? null : $serviceCompiler(...); $this->getEnv = $getEnv; } public function getFunctions(): array { return [ new ExpressionFunction('service', $this->serviceCompiler ?? fn ($arg) => sprintf('$container->get(%s)', $arg), fn (array $variables, $value) => $variables['container']->get($value)), new ExpressionFunction('parameter', fn ($arg) => sprintf('$container->getParameter(%s)', $arg), fn (array $variables, $value) => $variables['container']->getParameter($value)), new ExpressionFunction('env', fn ($arg) => sprintf('$container->getEnv(%s)', $arg), function (array $variables, $value) { if (!$this->getEnv) { throw new LogicException('You need to pass a getEnv closure to the expression langage provider to use the "env" function.'); } return ($this->getEnv)($value); }), new ExpressionFunction('arg', fn ($arg) => sprintf('$args?->get(%s)', $arg), fn (array $variables, $value) => $variables['args']?->get($value)), ]; } }