lib/boab/cms-bundle/src/ORM/RepositoryFactory.php line 22

Open in your IDE?
  1. <?php
  2. namespace Boab\CmsBundle\ORM;
  3. use Boab\CmsBundle\Service\PaginationInterface;
  4. use Doctrine\ORM\EntityRepository;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. class RepositoryFactory
  7. {
  8.     private $entityManager;
  9.     private $pagination;
  10.     public function __construct(EntityManagerInterface $entityManagerPaginationInterface $pagination)
  11.     {
  12.         $this->entityManager $entityManager;
  13.         $this->pagination $pagination;
  14.     }
  15.     public function getRepository(string $entityName): EntityRepository
  16.     {
  17.         $metadata $this->entityManager->getClassMetadata($entityName);
  18.         $repositoryClassName $metadata->customRepositoryClassName ?: $this->entityManager->getConfiguration()->getDefaultRepositoryClassName();
  19.         $repository = new $repositoryClassName($this->entityManager$metadata);
  20.         $repository->setPagination($this->pagination);
  21.         return $repository;
  22.     }
  23. }