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 }