diff options
Diffstat (limited to 'inc/lib/Twig/FactoryRuntimeLoader.php')
| -rw-r--r-- | inc/lib/Twig/FactoryRuntimeLoader.php | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/inc/lib/Twig/FactoryRuntimeLoader.php b/inc/lib/Twig/FactoryRuntimeLoader.php new file mode 100644 index 00000000..2cdaded1 --- /dev/null +++ b/inc/lib/Twig/FactoryRuntimeLoader.php @@ -0,0 +1,39 @@ +<?php + +/* + * This file is part of Twig. + * + * (c) Fabien Potencier + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Lazy loads the runtime implementations for a Twig element. + * + * @author Robin Chalas <robin.chalas@gmail.com> + */ +class Twig_FactoryRuntimeLoader implements Twig_RuntimeLoaderInterface +{ + private $map; + + /** + * @param array $map An array where keys are class names and values factory callables + */ + public function __construct($map = array()) + { + $this->map = $map; + } + + public function load($class) + { + if (isset($this->map[$class])) { + $runtimeFactory = $this->map[$class]; + + return $runtimeFactory(); + } + } +} + +class_alias('Twig_FactoryRuntimeLoader', 'Twig\RuntimeLoader\FactoryRuntimeLoader', false); |
