getRDBRepository(PhoneNumber::ENTITY_TYPE); if (!$repository instanceof PhoneNumberRepository) { throw new RuntimeException(); } $this->internalRepository = $repository; } /** * Find entities by a phone number. * * @param string $number A phone number. * @return Entity[] */ public function find(string $number): array { $phoneNumber = $this->repository->getByNumber($number); if (!$phoneNumber) { return []; } return $this->internalRepository->getEntityListByPhoneNumberId($phoneNumber->getId()); } /** * Find a first entity by a phone number. * * @param string $number A phone number. * @param string[] $order An order entity type list. */ public function findOne(string $number, ?array $order = null): ?Entity { $phoneNumber = $this->repository->getByNumber($number); if (!$phoneNumber) { return null; } if ($order) { $this->internalRepository->getEntityByPhoneNumberId($phoneNumber->getId(), null, $order); } return $this->internalRepository->getEntityByPhoneNumberId($phoneNumber->getId()); } }