1
1
<?php
2
+ use PhpParser \ParserFactory ;
3
+ use PhpParser \Node \Stmt ;
4
+ use PhpParser \Node \Expr ;
5
+
2
6
class PHPCtags
3
7
{
4
8
const VERSION = '0.6.1 ' ;
@@ -28,7 +32,7 @@ class PHPCtags
28
32
29
33
public function __construct ($ options )
30
34
{
31
- $ this ->mParser = new PHPParser_Parser (new PHPParser_Lexer );
35
+ $ this ->mParser = (new ParserFactory )-> create (ParserFactory:: PREFER_PHP7 );
32
36
$ this ->mLines = array ();
33
37
$ this ->mOptions = $ options ;
34
38
$ this ->filecount = 0 ;
@@ -128,7 +132,7 @@ private function struct($node, $reset=FALSE, $parent=array())
128
132
foreach ($ node as $ subNode ) {
129
133
$ this ->struct ($ subNode );
130
134
}
131
- } elseif ($ node instanceof PHPParser_Node_Stmt_Class ) {
135
+ } elseif ($ node instanceof Stmt \Class_ ) {
132
136
$ kind = 'c ' ;
133
137
$ name = $ node ->name ;
134
138
$ extends = $ node ->extends ;
@@ -137,90 +141,90 @@ private function struct($node, $reset=FALSE, $parent=array())
137
141
foreach ($ node as $ subNode ) {
138
142
$ this ->struct ($ subNode , FALSE , array ('class ' => $ name ));
139
143
}
140
- } elseif ($ node instanceof PHPParser_Node_Stmt_Property ) {
144
+ } elseif ($ node instanceof Stmt \Property ) {
141
145
$ kind = 'p ' ;
142
146
$ prop = $ node ->props [0 ];
143
147
$ name = $ prop ->name ;
144
148
$ line = $ prop ->getLine ();
145
149
$ access = $ this ->getNodeAccess ($ node );
146
- } elseif ($ node instanceof PHPParser_Node_Stmt_ClassConst ) {
150
+ } elseif ($ node instanceof Stmt \ClassConst ) {
147
151
$ kind = 'd ' ;
148
152
$ cons = $ node ->consts [0 ];
149
153
$ name = $ cons ->name ;
150
154
$ line = $ cons ->getLine ();
151
- } elseif ($ node instanceof PHPParser_Node_Stmt_ClassMethod ) {
155
+ } elseif ($ node instanceof Stmt \ClassMethod ) {
152
156
$ kind = 'm ' ;
153
157
$ name = $ node ->name ;
154
158
$ line = $ node ->getLine ();
155
159
$ access = $ this ->getNodeAccess ($ node );
156
160
foreach ($ node as $ subNode ) {
157
161
$ this ->struct ($ subNode , FALSE , array ('method ' => $ name ));
158
162
}
159
- } elseif ($ node instanceof PHPParser_Node_Stmt_If ) {
163
+ } elseif ($ node instanceof Stmt \If_ ) {
160
164
foreach ($ node as $ subNode ) {
161
165
$ this ->struct ($ subNode );
162
166
}
163
- } elseif ($ node instanceof PHPParser_Node_Stmt_Const ) {
167
+ } elseif ($ node instanceof Stmt \Const_ ) {
164
168
$ kind = 'd ' ;
165
169
$ cons = $ node ->consts [0 ];
166
170
$ name = $ cons ->name ;
167
171
$ line = $ node ->getLine ();
168
- } elseif ($ node instanceof PHPParser_Node_Stmt_Global ) {
172
+ } elseif ($ node instanceof Stmt \Global_ ) {
169
173
$ kind = 'v ' ;
170
174
$ prop = $ node ->vars [0 ];
171
175
$ name = $ prop ->name ;
172
176
$ line = $ node ->getLine ();
173
- } elseif ($ node instanceof PHPParser_Node_Stmt_Static ) {
177
+ } elseif ($ node instanceof Stmt \Static_ ) {
174
178
//@todo
175
- } elseif ($ node instanceof PHPParser_Node_Stmt_Declare ) {
179
+ } elseif ($ node instanceof Stmt \Declare_ ) {
176
180
//@todo
177
- } elseif ($ node instanceof PHPParser_Node_Stmt_TryCatch ) {
181
+ } elseif ($ node instanceof Stmt \TryCatch ) {
178
182
foreach ($ node as $ subNode ) {
179
183
$ this ->struct ($ subNode );
180
184
}
181
- } elseif ($ node instanceof PHPParser_Node_Stmt_Function ) {
185
+ } elseif ($ node instanceof Stmt \Function_ ) {
182
186
$ kind = 'f ' ;
183
187
$ name = $ node ->name ;
184
188
$ line = $ node ->getLine ();
185
189
foreach ($ node as $ subNode ) {
186
190
$ this ->struct ($ subNode , FALSE , array ('function ' => $ name ));
187
191
}
188
- } elseif ($ node instanceof PHPParser_Node_Stmt_Interface ) {
192
+ } elseif ($ node instanceof Stmt \Interface_ ) {
189
193
$ kind = 'i ' ;
190
194
$ name = $ node ->name ;
191
195
$ line = $ node ->getLine ();
192
196
foreach ($ node as $ subNode ) {
193
197
$ this ->struct ($ subNode , FALSE , array ('interface ' => $ name ));
194
198
}
195
- } elseif ($ node instanceof PHPParser_Node_Stmt_Trait ) {
199
+ } elseif ($ node instanceof Stmt \Trait_ ) {
196
200
$ kind = 't ' ;
197
201
$ name = $ node ->name ;
198
202
$ line = $ node ->getLine ();
199
203
foreach ($ node as $ subNode ) {
200
204
$ this ->struct ($ subNode , FALSE , array ('trait ' => $ name ));
201
205
}
202
- } elseif ($ node instanceof PHPParser_Node_Stmt_Namespace ) {
206
+ } elseif ($ node instanceof Stmt \Namespace_ ) {
203
207
$ kind = 'n ' ;
204
208
$ name = $ node ->name ;
205
209
$ line = $ node ->getLine ();
206
210
foreach ($ node as $ subNode ) {
207
211
$ this ->struct ($ subNode , FALSE , array ('namespace ' => $ name ));
208
212
}
209
- } elseif ($ node instanceof PHPParser_Node_Expr_Assign ) {
213
+ } elseif ($ node instanceof Expr \Assign ) {
210
214
if (isset ($ node ->var ->name ) && is_string ($ node ->var ->name )) {
211
215
$ kind = 'v ' ;
212
216
$ node = $ node ->var ;
213
217
$ name = $ node ->name ;
214
218
$ line = $ node ->getLine ();
215
219
}
216
- } elseif ($ node instanceof PHPParser_Node_Expr_AssignRef ) {
220
+ } elseif ($ node instanceof Expr \AssignRef ) {
217
221
if (isset ($ node ->var ->name ) && is_string ($ node ->var ->name )) {
218
222
$ kind = 'v ' ;
219
223
$ node = $ node ->var ;
220
224
$ name = $ node ->name ;
221
225
$ line = $ node ->getLine ();
222
226
}
223
- } elseif ($ node instanceof PHPParser_Node_Expr_FuncCall ) {
227
+ } elseif ($ node instanceof Expr \FuncCall ) {
224
228
switch ($ node ->name ) {
225
229
case 'define ' :
226
230
$ kind = 'd ' ;
@@ -274,7 +278,7 @@ private function render($structure)
274
278
if (empty ($ struct ['name ' ]) || empty ($ struct ['line ' ]) || empty ($ struct ['kind ' ]))
275
279
return ;
276
280
277
- if ($ struct ['name ' ] instanceof PHPParser_Node_Expr_Variable ) {
281
+ if ($ struct ['name ' ] instanceof Expr \Variable) {
278
282
$ str .= $ struct ['name ' ]->name ;
279
283
}else {
280
284
$ str .= $ struct ['name ' ];
0 commit comments