nextId(); $text = new Text( id: $id, name: $dto->name, user: $dto->user, ); $this->existingTexts[$id] = $text; return $text; } public function find(int $id): ?Text { if (!isset($this->existingTexts[$id])) { return null; } $text = $this->existingTexts[$id]; return new Text( id: $text->getId(), name: $text->getName(), user: $text->getUser(), ); } private function nextId(): int { return count($this->existingTexts); } /** * @return Text[] */ public function getAll(): array { return array_map( function (Text $text) { return new Text( id: $text->getId(), name: $text->getName(), user: $text->getUser(), ); }, array_values($this->existingTexts) ); } }