Mercurial > hg > cmmr2012-drupal-site
comparison vendor/zendframework/zend-feed/src/Writer/Writer.php @ 2:5311817fb629
Theme updates
author | Chris Cannam |
---|---|
date | Tue, 10 Jul 2018 13:19:18 +0000 |
parents | c75dbcec494b |
children | 12f9dff5fda9 |
comparison
equal
deleted
inserted
replaced
1:0b0e5f3b1e83 | 2:5311817fb629 |
---|---|
74 * | 74 * |
75 * @return ExtensionManagerInterface | 75 * @return ExtensionManagerInterface |
76 */ | 76 */ |
77 public static function getExtensionManager() | 77 public static function getExtensionManager() |
78 { | 78 { |
79 if (!isset(static::$extensionManager)) { | 79 if (! isset(static::$extensionManager)) { |
80 static::setExtensionManager(new ExtensionManager()); | 80 static::setExtensionManager(new ExtensionManager()); |
81 } | 81 } |
82 return static::$extensionManager; | 82 return static::$extensionManager; |
83 } | 83 } |
84 | 84 |
89 * @return void | 89 * @return void |
90 * @throws Exception\RuntimeException if unable to resolve Extension class | 90 * @throws Exception\RuntimeException if unable to resolve Extension class |
91 */ | 91 */ |
92 public static function registerExtension($name) | 92 public static function registerExtension($name) |
93 { | 93 { |
94 $feedName = $name . '\Feed'; | 94 if (! static::hasExtension($name)) { |
95 $entryName = $name . '\Entry'; | |
96 $feedRendererName = $name . '\Renderer\Feed'; | |
97 $entryRendererName = $name . '\Renderer\Entry'; | |
98 $manager = static::getExtensionManager(); | |
99 if (static::isRegistered($name)) { | |
100 if ($manager->has($feedName) | |
101 || $manager->has($entryName) | |
102 || $manager->has($feedRendererName) | |
103 || $manager->has($entryRendererName) | |
104 ) { | |
105 return; | |
106 } | |
107 } | |
108 if (! $manager->has($feedName) | |
109 && ! $manager->has($entryName) | |
110 && ! $manager->has($feedRendererName) | |
111 && ! $manager->has($entryRendererName) | |
112 ) { | |
113 throw new Exception\RuntimeException(sprintf( | 95 throw new Exception\RuntimeException(sprintf( |
114 'Could not load extension "%s" using Plugin Loader. ' | 96 'Could not load extension "%s" using Plugin Loader.' |
115 . 'Check prefix paths are configured and extension exists.', | 97 . ' Check prefix paths are configured and extension exists.', |
116 $name | 98 $name |
117 )); | 99 )); |
118 } | 100 } |
101 | |
102 if (static::isRegistered($name)) { | |
103 return; | |
104 } | |
105 | |
106 $manager = static::getExtensionManager(); | |
107 | |
108 $feedName = $name . '\Feed'; | |
119 if ($manager->has($feedName)) { | 109 if ($manager->has($feedName)) { |
120 static::$extensions['feed'][] = $feedName; | 110 static::$extensions['feed'][] = $feedName; |
121 } | 111 } |
112 | |
113 $entryName = $name . '\Entry'; | |
122 if ($manager->has($entryName)) { | 114 if ($manager->has($entryName)) { |
123 static::$extensions['entry'][] = $entryName; | 115 static::$extensions['entry'][] = $entryName; |
124 } | 116 } |
117 | |
118 $feedRendererName = $name . '\Renderer\Feed'; | |
125 if ($manager->has($feedRendererName)) { | 119 if ($manager->has($feedRendererName)) { |
126 static::$extensions['feedRenderer'][] = $feedRendererName; | 120 static::$extensions['feedRenderer'][] = $feedRendererName; |
127 } | 121 } |
122 | |
123 $entryRendererName = $name . '\Renderer\Entry'; | |
128 if ($manager->has($entryRendererName)) { | 124 if ($manager->has($entryRendererName)) { |
129 static::$extensions['entryRenderer'][] = $entryRendererName; | 125 static::$extensions['entryRenderer'][] = $entryRendererName; |
130 } | 126 } |
131 } | 127 } |
132 | 128 |
190 static::registerExtension('Atom'); | 186 static::registerExtension('Atom'); |
191 static::registerExtension('Slash'); | 187 static::registerExtension('Slash'); |
192 static::registerExtension('WellFormedWeb'); | 188 static::registerExtension('WellFormedWeb'); |
193 static::registerExtension('Threading'); | 189 static::registerExtension('Threading'); |
194 static::registerExtension('ITunes'); | 190 static::registerExtension('ITunes'); |
191 | |
192 // Added in 2.10.0; check for it conditionally | |
193 static::hasExtension('GooglePlayPodcast') | |
194 ? static::registerExtension('GooglePlayPodcast') | |
195 : trigger_error( | |
196 sprintf( | |
197 'Please update your %1$s\ExtensionManagerInterface implementation to add entries for' | |
198 . ' %1$s\Extension\GooglePlayPodcast\Entry,' | |
199 . ' %1$s\Extension\GooglePlayPodcast\Feed,' | |
200 . ' %1$s\Extension\GooglePlayPodcast\Renderer\Entry,' | |
201 . ' and %1$s\Extension\GooglePlayPodcast\Renderer\Feed.', | |
202 __NAMESPACE__ | |
203 ), | |
204 \E_USER_NOTICE | |
205 ); | |
195 } | 206 } |
196 | 207 |
197 public static function lcfirst($str) | 208 public static function lcfirst($str) |
198 { | 209 { |
199 $str[0] = strtolower($str[0]); | 210 $str[0] = strtolower($str[0]); |
200 return $str; | 211 return $str; |
201 } | 212 } |
213 | |
214 /** | |
215 * Does the extension manager have the named extension? | |
216 * | |
217 * This method exists to allow us to test if an extension is present in the | |
218 * extension manager. It may be used by registerExtension() to determine if | |
219 * the extension has items present in the manager, or by | |
220 * registerCoreExtension() to determine if the core extension has entries | |
221 * in the extension manager. In the latter case, this can be useful when | |
222 * adding new extensions in a minor release, as custom extension manager | |
223 * implementations may not yet have an entry for the extension, which would | |
224 * then otherwise cause registerExtension() to fail. | |
225 * | |
226 * @param string $name | |
227 * @return bool | |
228 */ | |
229 protected static function hasExtension($name) | |
230 { | |
231 $manager = static::getExtensionManager(); | |
232 | |
233 $feedName = $name . '\Feed'; | |
234 $entryName = $name . '\Entry'; | |
235 $feedRendererName = $name . '\Renderer\Feed'; | |
236 $entryRendererName = $name . '\Renderer\Entry'; | |
237 | |
238 return $manager->has($feedName) | |
239 || $manager->has($entryName) | |
240 || $manager->has($feedRendererName) | |
241 || $manager->has($entryRendererName); | |
242 } | |
202 } | 243 } |