existingCarriers as $carrier) { if ($carrier->getId() === $id) { return new Carrier($id, $carrier->getEmail()); } } return null; } public function save(Carrier $carrier): Carrier { $id = $carrier->getId(); if ($id === null) { $id = $this->autoIncrementId(); $carrier->setId($id); } $this->existingCarriers[$id] = $carrier; return new Carrier($id, $carrier->getEmail()); } private function autoIncrementId(): int { return count($this->existingCarriers); } public function getAll(): array { return array_map(function (Carrier $carrier) { return new Carrier( $carrier->getId(), $carrier->getEmail() ); }, $this->existingCarriers); } }