comparison vendor/zendframework/zend-feed/src/Writer/Writer.php @ 16:c2387f117808

Routine composer update
author Chris Cannam
date Tue, 10 Jul 2018 15:07:59 +0100
parents 7a779792577d
children af1871eacc83
comparison
equal deleted inserted replaced
15:e200cb7efeb3 16:c2387f117808
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 }