Mercurial > hg > isophonics-drupal-site
comparison 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 |
comparison
equal
deleted
inserted
replaced
11:bfffd8d7479a | 12:7a779792577d |
---|---|
6 * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) | 6 * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) |
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\Writer; | 10 namespace Zend\Feed\Writer; |
11 | |
12 use Zend\Feed\Writer\Exception\InvalidArgumentException; | |
11 | 13 |
12 class StandaloneExtensionManager implements ExtensionManagerInterface | 14 class StandaloneExtensionManager implements ExtensionManagerInterface |
13 { | 15 { |
14 private $extensions = [ | 16 private $extensions = [ |
15 'Atom\Renderer\Feed' => Extension\Atom\Renderer\Feed::class, | 17 'Atom\Renderer\Feed' => Extension\Atom\Renderer\Feed::class, |
45 public function get($extension) | 47 public function get($extension) |
46 { | 48 { |
47 $class = $this->extensions[$extension]; | 49 $class = $this->extensions[$extension]; |
48 return new $class(); | 50 return new $class(); |
49 } | 51 } |
52 | |
53 /** | |
54 * Add an extension. | |
55 * | |
56 * @param string $name | |
57 * @param string $class | |
58 */ | |
59 public function add($name, $class) | |
60 { | |
61 if (is_string($class) | |
62 && (( | |
63 is_a($class, Extension\AbstractRenderer::class, true) | |
64 || 'Feed' === substr($class, -4) | |
65 || 'Entry' === substr($class, -5) | |
66 )) | |
67 ) { | |
68 $this->extensions[$name] = $class; | |
69 | |
70 return; | |
71 } | |
72 | |
73 throw new InvalidArgumentException(sprintf( | |
74 'Plugin of type %s is invalid; must implement %s\Extension\RendererInterface ' | |
75 . 'or the classname must end in "Feed" or "Entry"', | |
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 } | |
50 } | 90 } |