blob: b360d7beaf1b746b2876fc95f7c428d47174ea09 [file] [log] [blame]
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001<?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(string $class)
34 {
35 return $this->container->has($class) ? $this->container->get($class) : null;
36 }
37}