Mercurial > hg > isophonics-drupal-site
comparison 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 |
comparison
equal
deleted
inserted
replaced
11:bfffd8d7479a | 12:7a779792577d |
---|---|
7 * @license http://framework.zend.com/license/new-bsd New BSD License | 7 * @license http://framework.zend.com/license/new-bsd New BSD License |
8 */ | 8 */ |
9 | 9 |
10 namespace Zend\Feed\Reader; | 10 namespace Zend\Feed\Reader; |
11 | 11 |
12 use Zend\Feed\Reader\Exception\InvalidArgumentException; | |
13 | |
12 class StandaloneExtensionManager implements ExtensionManagerInterface | 14 class StandaloneExtensionManager implements ExtensionManagerInterface |
13 { | 15 { |
14 private $extensions = [ | 16 private $extensions = [ |
15 'Atom\Entry' => 'Zend\Feed\Reader\Extension\Atom\Entry', | 17 'Atom\Entry' => Extension\Atom\Entry::class, |
16 'Atom\Feed' => 'Zend\Feed\Reader\Extension\Atom\Feed', | 18 'Atom\Feed' => Extension\Atom\Feed::class, |
17 'Content\Entry' => 'Zend\Feed\Reader\Extension\Content\Entry', | 19 'Content\Entry' => Extension\Content\Entry::class, |
18 'CreativeCommons\Entry' => 'Zend\Feed\Reader\Extension\CreativeCommons\Entry', | 20 'CreativeCommons\Entry' => Extension\CreativeCommons\Entry::class, |
19 'CreativeCommons\Feed' => 'Zend\Feed\Reader\Extension\CreativeCommons\Feed', | 21 'CreativeCommons\Feed' => Extension\CreativeCommons\Feed::class, |
20 'DublinCore\Entry' => 'Zend\Feed\Reader\Extension\DublinCore\Entry', | 22 'DublinCore\Entry' => Extension\DublinCore\Entry::class, |
21 'DublinCore\Feed' => 'Zend\Feed\Reader\Extension\DublinCore\Feed', | 23 'DublinCore\Feed' => Extension\DublinCore\Feed::class, |
22 'Podcast\Entry' => 'Zend\Feed\Reader\Extension\Podcast\Entry', | 24 'Podcast\Entry' => Extension\Podcast\Entry::class, |
23 'Podcast\Feed' => 'Zend\Feed\Reader\Extension\Podcast\Feed', | 25 'Podcast\Feed' => Extension\Podcast\Feed::class, |
24 'Slash\Entry' => 'Zend\Feed\Reader\Extension\Slash\Entry', | 26 'Slash\Entry' => Extension\Slash\Entry::class, |
25 'Syndication\Feed' => 'Zend\Feed\Reader\Extension\Syndication\Feed', | 27 'Syndication\Feed' => Extension\Syndication\Feed::class, |
26 'Thread\Entry' => 'Zend\Feed\Reader\Extension\Thread\Entry', | 28 'Thread\Entry' => Extension\Thread\Entry::class, |
27 'WellFormedWeb\Entry' => 'Zend\Feed\Reader\Extension\WellFormedWeb\Entry', | 29 'WellFormedWeb\Entry' => Extension\WellFormedWeb\Entry::class, |
28 ]; | 30 ]; |
29 | 31 |
30 /** | 32 /** |
31 * Do we have the extension? | 33 * Do we have the extension? |
32 * | 34 * |
47 public function get($extension) | 49 public function get($extension) |
48 { | 50 { |
49 $class = $this->extensions[$extension]; | 51 $class = $this->extensions[$extension]; |
50 return new $class(); | 52 return new $class(); |
51 } | 53 } |
54 | |
55 /** | |
56 * Add an extension. | |
57 * | |
58 * @param string $name | |
59 * @param string $class | |
60 */ | |
61 public function add($name, $class) | |
62 { | |
63 if (is_string($class) | |
64 && ( | |
65 is_a($class, Extension\AbstractEntry::class, true) | |
66 || is_a($class, Extension\AbstractFeed::class, true) | |
67 ) | |
68 ) { | |
69 $this->extensions[$name] = $class; | |
70 return; | |
71 } | |
72 | |
73 throw new InvalidArgumentException(sprintf( | |
74 'Plugin of type %s is invalid; must implement %2$s\Extension\AbstractFeed ' | |
75 . 'or %2$s\Extension\AbstractEntry', | |
76 $class, | |
77 __NAMESPACE__ | |
78 )); | |
79 } | |
80 | |
81 /** | |
82 * Remove an extension. | |
83 * | |
84 * @param string $name | |
85 */ | |
86 public function remove($name) | |
87 { | |
88 unset($this->extensions[$name]); | |
89 } | |
52 } | 90 } |