stack = []; } public function enterNode(Node $node): void { if (!empty($this->stack)) { $node->setAttribute('parent', $this->stack[count($this->stack) - 1]); } $this->stack[] = $node; } public function leaveNode(Node $node): void { array_pop($this->stack); } }