nextId(); $node = new Node( id: $id, text: $dto->text, title: $dto->title, parentNode: $dto->parentNode, ); $this->existingNodes[$id] = $node; return $node; } private function nextId(): int { return count($this->existingNodes); } public function find(int $id): ?Node { $node = array_find( $this->existingNodes, function (Node $node) use ($id) { return $node->getId() === $id; } ); if ($node === null) { return nullj; } return new Node( id: $id, title: $node->getTitle(), text: $node->getText(), parentNode: $node->getParentNode(), ); } }