123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- <?php
- namespace Doctrine\Bundle\DoctrineBundle\Repository;
- use Doctrine\ORM\EntityRepository;
- use Doctrine\Persistence\ManagerRegistry;
- use LogicException;
- use function sprintf;
- /**
- * Optional EntityRepository base class with a simplified constructor (for autowiring).
- *
- * To use in your class, inject the "registry" service and call
- * the parent constructor. For example:
- *
- * class YourEntityRepository extends ServiceEntityRepository
- * {
- * public function __construct(ManagerRegistry $registry)
- * {
- * parent::__construct($registry, YourEntity::class);
- * }
- * }
- *
- * @template T
- * @template-extends EntityRepository<T>
- */
- class ServiceEntityRepository extends EntityRepository implements ServiceEntityRepositoryInterface
- {
- /**
- * @param string $entityClass The class name of the entity this repository manages
- *
- * @psalm-param class-string<T> $entityClass
- */
- public function __construct(ManagerRegistry $registry, string $entityClass)
- {
- $manager = $registry->getManagerForClass($entityClass);
- if ($manager === null) {
- throw new LogicException(sprintf(
- 'Could not find the entity manager for class "%s". Check your Doctrine configuration to make sure it is configured to load this entity’s metadata.',
- $entityClass
- ));
- }
- parent::__construct($manager, $manager->getClassMetadata($entityClass));
- }
- }
|