diff vendor/zendframework/zend-feed/src/Writer/StandaloneExtensionManager.php @ 12:7a779792577d

Update Drupal core to v8.4.5 (via Composer)
author Chris Cannam
date Fri, 23 Feb 2018 15:52:07 +0000
parents 4c8ae668cc8c
children c2387f117808
line wrap: on
line diff
--- a/vendor/zendframework/zend-feed/src/Writer/StandaloneExtensionManager.php	Fri Feb 23 15:51:18 2018 +0000
+++ b/vendor/zendframework/zend-feed/src/Writer/StandaloneExtensionManager.php	Fri Feb 23 15:52:07 2018 +0000
@@ -9,6 +9,8 @@
 
 namespace Zend\Feed\Writer;
 
+use Zend\Feed\Writer\Exception\InvalidArgumentException;
+
 class StandaloneExtensionManager implements ExtensionManagerInterface
 {
     private $extensions = [
@@ -47,4 +49,42 @@
         $class = $this->extensions[$extension];
         return new $class();
     }
+
+    /**
+     * Add an extension.
+     *
+     * @param string $name
+     * @param string $class
+     */
+    public function add($name, $class)
+    {
+        if (is_string($class)
+            && ((
+                is_a($class, Extension\AbstractRenderer::class, true)
+                || 'Feed' === substr($class, -4)
+                || 'Entry' === substr($class, -5)
+            ))
+        ) {
+            $this->extensions[$name] = $class;
+
+            return;
+        }
+
+        throw new InvalidArgumentException(sprintf(
+            'Plugin of type %s is invalid; must implement %s\Extension\RendererInterface '
+            . 'or the classname must end in "Feed" or "Entry"',
+            $class,
+            __NAMESPACE__
+        ));
+    }
+
+    /**
+     * Remove an extension.
+     *
+     * @param string $name
+     */
+    public function remove($name)
+    {
+        unset($this->extensions[$name]);
+    }
 }