Mercurial > hg > cmmr2012-drupal-site
diff vendor/zendframework/zend-feed/src/Reader/ExtensionManager.php @ 0:c75dbcec494b
Initial commit from drush-created site
author | Chris Cannam |
---|---|
date | Thu, 05 Jul 2018 14:24:15 +0000 |
parents | |
children | 5311817fb629 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/zendframework/zend-feed/src/Reader/ExtensionManager.php Thu Jul 05 14:24:15 2018 +0000 @@ -0,0 +1,80 @@ +<?php +/** + * Zend Framework (http://framework.zend.com/) + * + * @link http://github.com/zendframework/zf2 for the canonical source repository + * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ + +namespace Zend\Feed\Reader; + +/** + * Default implementation of ExtensionManagerInterface + * + * Decorator of ExtensionPluginManager. + */ +class ExtensionManager implements ExtensionManagerInterface +{ + protected $pluginManager; + + /** + * Constructor + * + * Seeds the extension manager with a plugin manager; if none provided, + * creates an instance. + * + * @param null|ExtensionPluginManager $pluginManager + */ + public function __construct(ExtensionPluginManager $pluginManager = null) + { + if (null === $pluginManager) { + $pluginManager = new ExtensionPluginManager(); + } + $this->pluginManager = $pluginManager; + } + + /** + * Method overloading + * + * Proxy to composed ExtensionPluginManager instance. + * + * @param string $method + * @param array $args + * @return mixed + * @throws Exception\BadMethodCallException + */ + public function __call($method, $args) + { + if (!method_exists($this->pluginManager, $method)) { + throw new Exception\BadMethodCallException(sprintf( + 'Method by name of %s does not exist in %s', + $method, + __CLASS__ + )); + } + return call_user_func_array([$this->pluginManager, $method], $args); + } + + /** + * Get the named extension + * + * @param string $name + * @return Extension\AbstractEntry|Extension\AbstractFeed + */ + public function get($name) + { + return $this->pluginManager->get($name); + } + + /** + * Do we have the named extension? + * + * @param string $name + * @return bool + */ + public function has($name) + { + return $this->pluginManager->has($name); + } +}