1<?php
2
3/*
4 * This file is part of Twig.
5 *
6 * (c) Fabien Potencier
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12namespace Twig\RuntimeLoader;
13
14use Psr\Container\ContainerInterface;
15
16/**
17 * Lazily loads Twig runtime implementations from a PSR-11 container.
18 *
19 * Note that the runtime services MUST use their class names as identifiers.
20 *
21 * @author Fabien Potencier <fabien@symfony.com>
22 * @author Robin Chalas <robin.chalas@gmail.com>
23 */
24class ContainerRuntimeLoader implements RuntimeLoaderInterface
25{
26    private $container;
27
28    public function __construct(ContainerInterface $container)
29    {
30        $this->container = $container;
31    }
32
33    public function load($class)
34    {
35        if ($this->container->has($class)) {
36            return $this->container->get($class);
37        }
38    }
39}
40
41class_alias('Twig\RuntimeLoader\ContainerRuntimeLoader', 'Twig_ContainerRuntimeLoader');
42