File tree Expand file tree Collapse file tree 3 files changed +16
-2
lines changed
src/Naneau/Obfuscator/Node/Visitor Expand file tree Collapse file tree 3 files changed +16
-2
lines changed Original file line number Diff line number Diff line change @@ -88,13 +88,16 @@ public function enterNode(Node $node)
88
88
$ extends = $ node ->extends ->toString ();
89
89
if ($ this ->isRenamed ($ extends )) {
90
90
$ node ->extends = new Name ($ this ->getNewName ($ extends ));
91
+ } elseif ($ this ->isRenamed ($ node ->extends ->getFirst ())) {
92
+ reset ($ node ->extends ->parts );
93
+ $ node ->extends ->parts [key ($ node ->extends ->parts )] = $ this ->getNewName ($ node ->extends ->getFirst ());
91
94
}
92
95
}
93
96
94
97
// Classes that implement an interface
95
98
if ($ node ->implements !== null && count ($ node ->implements ) > 0 ) {
96
99
97
- $ implements = array () ;
100
+ $ implements = [] ;
98
101
99
102
foreach ($ node ->implements as $ implementsName ) {
100
103
@@ -104,6 +107,10 @@ public function enterNode(Node $node)
104
107
if ($ this ->isRenamed ($ oldName )) {
105
108
// If renamed, set new one
106
109
$ implements [] = new Name ($ this ->getNewName ($ oldName ));
110
+ } elseif ($ this ->isRenamed ($ implementsName ->getFirst ())) {
111
+ reset ($ implementsName ->parts );
112
+ $ implementsName ->parts [key ($ node ->extends ->parts )] = $ this ->getNewName ($ implementsName ->getFirst ());
113
+ $ implements [] = $ implementsName ;
107
114
} else {
108
115
// If not renamed, pass old one
109
116
$ implements [] = $ implementsName ;
Original file line number Diff line number Diff line change @@ -12,6 +12,10 @@ class classD {
12
12
13
13
}
14
14
15
+ interface interfaceA {
16
+
17
+ }
18
+
15
19
namespace namespaceB ;
16
20
17
21
use namespaceA \classA as classC ;
@@ -29,3 +33,6 @@ public function __construct() {
29
33
}
30
34
}
31
35
36
+ class classE extends namespaceDAlias \classD implements namespaceDAlias \interfaceA {
37
+
38
+ }
Original file line number Diff line number Diff line change 1
1
<?php
2
- namespace namespaceA ; class classA { } namespace namespaceC \namespaceD ; class classD { } namespace namespaceB ; use namespaceA \classA as spf0f507 ; use namespaceC \namespaceD as sp63627e ; class classB { private $ spa26210 ; private $ sp2e1034 ; public function __construct () { $ this ->spa26210 = new spf0f507 (); $ this ->sp2e1034 = new sp63627e \classD (); } }
2
+ namespace namespaceA ; class classA { } namespace namespaceC \namespaceD ; class classD { } interface interfaceA { } namespace namespaceB ; use namespaceA \classA as spf0f507 ; use namespaceC \namespaceD as sp63627e ; class classB { private $ spa26210 ; private $ sp2e1034 ; public function __construct () { $ this ->spa26210 = new spf0f507 (); $ this ->sp2e1034 = new sp63627e \classD (); } } class classE extends sp63627e \classD implements sp63627e \interfaceA { }
You can’t perform that action at this time.
0 commit comments