@@ -179,16 +179,19 @@ public function loadClass($class)
179
179
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
- } elseif (0 !== strpos ($ name , 'Symfony \\' )) {
182
+ } else {
183
+ $ len = 1 + (strpos ($ name , '\\' , 1 + strpos ($ name , '\\' )) ?: strpos ($ name , '_ ' ));
183
184
$ parent = $ refl ->getParentClass ();
184
185
185
- if ($ parent && isset (self ::$ deprecated [$ parent ->name ])) {
186
- trigger_error (sprintf ('The %s class extends %s that is deprecated %s ' , $ name , $ parent ->name , self ::$ deprecated [$ parent ->name ]), E_USER_DEPRECATED );
187
- }
186
+ if (!$ parent || $ len < 2 || strncmp ($ name , $ parent , $ len )) {
187
+ if ($ parent && isset (self ::$ deprecated [$ parent ->name ]) && ($ len < 2 || strncmp ($ name , $ parent ->name , $ len ))) {
188
+ trigger_error (sprintf ('The %s class extends %s that is deprecated %s ' , $ name , $ parent ->name , self ::$ deprecated [$ parent ->name ]), E_USER_DEPRECATED );
189
+ }
188
190
189
- foreach ($ refl ->getInterfaceNames () as $ interface ) {
190
- if (isset (self ::$ deprecated [$ interface ]) && !($ parent && $ parent ->implementsInterface ($ interface ))) {
191
- 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 );
191
+ foreach ($ refl ->getInterfaceNames () as $ interface ) {
192
+ if (isset (self ::$ deprecated [$ interface ]) && ($ len < 2 || strncmp ($ name , $ interface , $ len )) && !($ parent && $ parent ->implementsInterface ($ interface ))) {
193
+ 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
+ }
192
195
}
193
196
}
194
197
}
0 commit comments