Mercurial > hg > cmmr2012-drupal-site
comparison vendor/zendframework/zend-feed/src/Reader/StandaloneExtensionManager.php @ 2:5311817fb629
Theme updates
author | Chris Cannam |
---|---|
date | Tue, 10 Jul 2018 13:19:18 +0000 |
parents | c75dbcec494b |
children |
comparison
equal
deleted
inserted
replaced
1:0b0e5f3b1e83 | 2:5311817fb629 |
---|---|
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 'GooglePlayPodcast\Entry' => Extension\GooglePlayPodcast\Entry::class, |
23 'Podcast\Feed' => 'Zend\Feed\Reader\Extension\Podcast\Feed', | 25 'GooglePlayPodcast\Feed' => Extension\GooglePlayPodcast\Feed::class, |
24 'Slash\Entry' => 'Zend\Feed\Reader\Extension\Slash\Entry', | 26 'Podcast\Entry' => Extension\Podcast\Entry::class, |
25 'Syndication\Feed' => 'Zend\Feed\Reader\Extension\Syndication\Feed', | 27 'Podcast\Feed' => Extension\Podcast\Feed::class, |
26 'Thread\Entry' => 'Zend\Feed\Reader\Extension\Thread\Entry', | 28 'Slash\Entry' => Extension\Slash\Entry::class, |
27 'WellFormedWeb\Entry' => 'Zend\Feed\Reader\Extension\WellFormedWeb\Entry', | 29 'Syndication\Feed' => Extension\Syndication\Feed::class, |
30 'Thread\Entry' => Extension\Thread\Entry::class, | |
31 'WellFormedWeb\Entry' => Extension\WellFormedWeb\Entry::class, | |
28 ]; | 32 ]; |
29 | 33 |
30 /** | 34 /** |
31 * Do we have the extension? | 35 * Do we have the extension? |
32 * | 36 * |
47 public function get($extension) | 51 public function get($extension) |
48 { | 52 { |
49 $class = $this->extensions[$extension]; | 53 $class = $this->extensions[$extension]; |
50 return new $class(); | 54 return new $class(); |
51 } | 55 } |
56 | |
57 /** | |
58 * Add an extension. | |
59 * | |
60 * @param string $name | |
61 * @param string $class | |
62 */ | |
63 public function add($name, $class) | |
64 { | |
65 if (is_string($class) | |
66 && ( | |
67 is_a($class, Extension\AbstractEntry::class, true) | |
68 || is_a($class, Extension\AbstractFeed::class, true) | |
69 ) | |
70 ) { | |
71 $this->extensions[$name] = $class; | |
72 return; | |
73 } | |
74 | |
75 throw new InvalidArgumentException(sprintf( | |
76 'Plugin of type %s is invalid; must implement %2$s\Extension\AbstractFeed ' | |
77 . 'or %2$s\Extension\AbstractEntry', | |
78 $class, | |
79 __NAMESPACE__ | |
80 )); | |
81 } | |
82 | |
83 /** | |
84 * Remove an extension. | |
85 * | |
86 * @param string $name | |
87 */ | |
88 public function remove($name) | |
89 { | |
90 unset($this->extensions[$name]); | |
91 } | |
52 } | 92 } |