Source of file TwigEnvironmentPass.php
Size: 1,500 Bytes - Last Modified: 2013-07-17T08:22:21+02:00
/home/theseer/Downloads/Symfony/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/TwigEnvironmentPass.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445 | <?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\Bundle\TwigBundle\DependencyInjection\Compiler; use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; /** * Adds tagged twig.extension services to twig service * * @author Fabien Potencier <fabien@symfony.com> */ class TwigEnvironmentPass implements CompilerPassInterface { public function process(ContainerBuilder $container) { if (false === $container->hasDefinition('twig')) { return; } $definition = $container->getDefinition('twig'); // Extensions must always be registered before everything else. // For instance, global variable definitions must be registered // afterward. If not, the globals from the extensions will never // be registered. $calls = $definition->getMethodCalls(); $definition->setMethodCalls(array()); foreach ($container->findTaggedServiceIds('twig.extension') as $id => $attributes) { $definition->addMethodCall('addExtension', array(new Reference($id))); } $definition->setMethodCalls(array_merge($definition->getMethodCalls(), $calls)); } } |