@@ -180,16 +180,28 @@ public function loadClass($class)
180
180
if (preg_match ('#\n \* @deprecated (.*?)\r?\n \*(?: @|/$)#s ' , $ refl ->getDocComment (), $ notice )) {
181
181
self ::$ deprecated [$ name ] = preg_replace ('#\s*\r?\n \* +# ' , ' ' , $ notice [1 ]);
182
182
} else {
183
- $ len = 1 + (strpos ($ name , '\\' , 1 + strpos ($ name , '\\' )) ?: strpos ($ name , '_ ' ));
183
+ if (2 > $ len = 1 + (strpos ($ name , '\\' , 1 + strpos ($ name , '\\' )) ?: strpos ($ name , '_ ' ))) {
184
+ $ len = 0 ;
185
+ $ ns = '' ;
186
+ } else {
187
+ switch ($ ns = substr ($ name , 0 , $ len )) {
188
+ case 'Symfony\Bridge \\' :
189
+ case 'Symfony\Bundle \\' :
190
+ case 'Symfony\Component \\' :
191
+ $ ns = 'Symfony \\' ;
192
+ $ len = strlen ($ ns );
193
+ break ;
194
+ }
195
+ }
184
196
$ parent = $ refl ->getParentClass ();
185
197
186
- if (!$ parent || $ len < 2 || strncmp ($ name , $ parent , $ len )) {
187
- if ($ parent && isset (self ::$ deprecated [$ parent ->name ]) && ( $ len < 2 || strncmp ($ name , $ parent ->name , $ len) )) {
198
+ if (!$ parent || strncmp ($ ns , $ parent , $ len )) {
199
+ if ($ parent && isset (self ::$ deprecated [$ parent ->name ]) && strncmp ($ ns , $ parent ->name , $ len )) {
188
200
trigger_error (sprintf ('The %s class extends %s that is deprecated %s ' , $ name , $ parent ->name , self ::$ deprecated [$ parent ->name ]), E_USER_DEPRECATED );
189
201
}
190
202
191
203
foreach ($ refl ->getInterfaceNames () as $ interface ) {
192
- if (isset (self ::$ deprecated [$ interface ]) && ( $ len < 2 || strncmp ($ name , $ interface , $ len) ) && !($ parent && $ parent ->implementsInterface ($ interface ))) {
204
+ if (isset (self ::$ deprecated [$ interface ]) && strncmp ($ ns , $ interface , $ len ) && !($ parent && $ parent ->implementsInterface ($ interface ))) {
193
205
trigger_error (sprintf ('The %s %s %s that is deprecated %s ' , $ name , $ refl ->isInterface () ? 'interface extends ' : 'class implements ' , $ interface , self ::$ deprecated [$ interface ]), E_USER_DEPRECATED );
194
206
}
195
207
}
0 commit comments