Mercurial > hg > isophonics-drupal-site
diff vendor/zendframework/zend-feed/src/Reader/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/Reader/StandaloneExtensionManager.php Fri Feb 23 15:51:18 2018 +0000 +++ b/vendor/zendframework/zend-feed/src/Reader/StandaloneExtensionManager.php Fri Feb 23 15:52:07 2018 +0000 @@ -9,22 +9,24 @@ namespace Zend\Feed\Reader; +use Zend\Feed\Reader\Exception\InvalidArgumentException; + class StandaloneExtensionManager implements ExtensionManagerInterface { private $extensions = [ - 'Atom\Entry' => 'Zend\Feed\Reader\Extension\Atom\Entry', - 'Atom\Feed' => 'Zend\Feed\Reader\Extension\Atom\Feed', - 'Content\Entry' => 'Zend\Feed\Reader\Extension\Content\Entry', - 'CreativeCommons\Entry' => 'Zend\Feed\Reader\Extension\CreativeCommons\Entry', - 'CreativeCommons\Feed' => 'Zend\Feed\Reader\Extension\CreativeCommons\Feed', - 'DublinCore\Entry' => 'Zend\Feed\Reader\Extension\DublinCore\Entry', - 'DublinCore\Feed' => 'Zend\Feed\Reader\Extension\DublinCore\Feed', - 'Podcast\Entry' => 'Zend\Feed\Reader\Extension\Podcast\Entry', - 'Podcast\Feed' => 'Zend\Feed\Reader\Extension\Podcast\Feed', - 'Slash\Entry' => 'Zend\Feed\Reader\Extension\Slash\Entry', - 'Syndication\Feed' => 'Zend\Feed\Reader\Extension\Syndication\Feed', - 'Thread\Entry' => 'Zend\Feed\Reader\Extension\Thread\Entry', - 'WellFormedWeb\Entry' => 'Zend\Feed\Reader\Extension\WellFormedWeb\Entry', + 'Atom\Entry' => Extension\Atom\Entry::class, + 'Atom\Feed' => Extension\Atom\Feed::class, + 'Content\Entry' => Extension\Content\Entry::class, + 'CreativeCommons\Entry' => Extension\CreativeCommons\Entry::class, + 'CreativeCommons\Feed' => Extension\CreativeCommons\Feed::class, + 'DublinCore\Entry' => Extension\DublinCore\Entry::class, + 'DublinCore\Feed' => Extension\DublinCore\Feed::class, + 'Podcast\Entry' => Extension\Podcast\Entry::class, + 'Podcast\Feed' => Extension\Podcast\Feed::class, + 'Slash\Entry' => Extension\Slash\Entry::class, + 'Syndication\Feed' => Extension\Syndication\Feed::class, + 'Thread\Entry' => Extension\Thread\Entry::class, + 'WellFormedWeb\Entry' => Extension\WellFormedWeb\Entry::class, ]; /** @@ -49,4 +51,40 @@ $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\AbstractEntry::class, true) + || is_a($class, Extension\AbstractFeed::class, true) + ) + ) { + $this->extensions[$name] = $class; + return; + } + + throw new InvalidArgumentException(sprintf( + 'Plugin of type %s is invalid; must implement %2$s\Extension\AbstractFeed ' + . 'or %2$s\Extension\AbstractEntry', + $class, + __NAMESPACE__ + )); + } + + /** + * Remove an extension. + * + * @param string $name + */ + public function remove($name) + { + unset($this->extensions[$name]); + } }