Всем привет. Имеется конструкция
if ($condition === 'demo') {
explode('.', []);
}
И вот ее AST
PhpParser\Node\Stmt\If_(
cond: PhpParser\Node\Expr\BinaryOp\Identical(
left: PhpParser\Node\Expr\Variable( name: "condition" )
right: PhpParser\Node\Scalar\String_( value: "demo" )
)
stmts: [
0: PhpParser\Node\Stmt\Expression(
expr: PhpParser\Node\Expr\FuncCall(
name: PhpParser\Node\Name\FullyQualified( parts: ["explode"] )
args: [
0: PhpParser\Node\Arg(
name: null
value: PhpParser\Node\Scalar\String_( value: "." )
byRef: false
unpack: false
)
1: PhpParser\Node\Arg(
name: null
value: PhpParser\Node\Expr\Array_(
items: []
)
byRef: false
unpack: false
)
]
)
)
]
elseifs: []
else: null
)
Я хочу найдя ноду с именем explode, поднятся выше, и достучать до IF_.
Вызываю $node->getAttribute('parent') и получаю null. Ноду с explode нашел, а вот выше по дереву не ищет ничего.
Использую в rector.