summaryrefslogtreecommitdiffstats
path: root/3rdparty/ZendFeed/Reader/ExtensionManager.php
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/ZendFeed/Reader/ExtensionManager.php')
-rw-r--r--3rdparty/ZendFeed/Reader/ExtensionManager.php80
1 files changed, 80 insertions, 0 deletions
diff --git a/3rdparty/ZendFeed/Reader/ExtensionManager.php b/3rdparty/ZendFeed/Reader/ExtensionManager.php
new file mode 100644
index 000000000..9103643a3
--- /dev/null
+++ b/3rdparty/ZendFeed/Reader/ExtensionManager.php
@@ -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-2014 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(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);
+ }
+}