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 }