Kdyby\Doctrine\RepositoryFactory::getRepository PHP Method

getRepository() public method

public getRepository ( Doctrine\ORM\EntityManagerInterface $entityManager, string $entityName ) : EntityRepository
$entityManager Doctrine\ORM\EntityManagerInterface
$entityName string
return EntityRepository
    public function getRepository(EntityManagerInterface $entityManager, $entityName)
    {
        if (is_object($entityName)) {
            $entityName = Doctrine\Common\Util\ClassUtils::getRealClass(get_class($entityName));
        }
        $entityName = ltrim($entityName, '\\');
        if (isset($this->repositoryList[$emId = spl_object_hash($entityManager)][$entityName])) {
            return $this->repositoryList[$emId][$entityName];
        }
        /** @var Doctrine\ORM\Mapping\ClassMetadata $metadata */
        $metadata = $entityManager->getClassMetadata($entityName);
        $repository = $this->createRepository($entityManager, $metadata);
        return $this->repositoryList[$emId][$entityName] = $repository;
    }

Usage Example

 public function getRepository(EntityManagerInterface $entityManager, $entityName)
 {
     $repository = parent::getRepository($entityManager, $entityName);
     if ($repository instanceof NestedTreeRepository) {
         $repository->setTreeListener($this->serviceLocator->getByType(TreeListener::class));
     }
     return $repository;
 }