Mercurial > hg > isophonics-drupal-site
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]); + } }