/usr/share/php/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/TwigLoaderPass.php is in php-symfony-twig-bundle 2.3.21+dfsg-4+deb8u3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | <?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;
use Symfony\Component\DependencyInjection\Exception\LogicException;
/**
* Adds services tagged twig.loader as Twig loaders
*
* @author Daniel Leech <daniel@dantleech.com>
*/
class TwigLoaderPass implements CompilerPassInterface
{
public function process(ContainerBuilder $container)
{
if (false === $container->hasDefinition('twig')) {
return;
}
// register additional template loaders
$loaderIds = $container->findTaggedServiceIds('twig.loader');
if (count($loaderIds) === 0) {
throw new LogicException('No twig loaders found. You need to tag at least one loader with "twig.loader"');
}
if (count($loaderIds) === 1) {
$container->setAlias('twig.loader', key($loaderIds));
} else {
$chainLoader = $container->getDefinition('twig.loader.chain');
foreach (array_keys($loaderIds) as $id) {
$chainLoader->addMethodCall('addLoader', array(new Reference($id)));
}
$container->setAlias('twig.loader', 'twig.loader.chain');
}
}
}
|