* * This source file is subject to the MIT license that is bundled * with this source code in the file LICENSE. */ /** * Loader is the abstract class used by all built-in loaders. * * @package symfony * @subpackage dependency_injection * @author Fabien Potencier */ abstract class Loader implements LoaderInterface { static protected $extensions = array(); /** * Registers an extension. * * @param LoaderExtensionInterface $extension An extension instance */ static public function registerExtension(LoaderExtensionInterface $extension) { static::$extensions[$extension->getAlias()] = static::$extensions[$extension->getNamespace()] = $extension; } /** * Returns an extension by alias or namespace. * * @param string $name An alias or a namespace * * @return LoaderExtensionInterface An extension instance */ static public function getExtension($name) { return isset(static::$extensions[$name]) ? static::$extensions[$name] : null; } }