summary | 
shortlog | 
log | 
commit | commitdiff | 
tree
raw | 
patch | 
inline | side by side (from parent 1: 
662088d)
 
Pass container to repository
 use Doctrine\ORM\Repository\RepositoryFactory as RepositoryFactoryInterface;
 use Doctrine\Persistence\ObjectRepository;
 
 use Doctrine\ORM\Repository\RepositoryFactory as RepositoryFactoryInterface;
 use Doctrine\Persistence\ObjectRepository;
 
+use Psr\Container\ContainerInterface;
+
 use Rapsys\PackBundle\Util\SluggerUtil;
 
 use Symfony\Component\HttpFoundation\RequestStack;
 use Rapsys\PackBundle\Util\SluggerUtil;
 
 use Symfony\Component\HttpFoundation\RequestStack;
 /**
  * This factory is used to create default repository objects for entities at runtime.
  */
 /**
  * This factory is used to create default repository objects for entities at runtime.
  */
-final class Factory implements RepositoryFactoryInterface {
+class Factory implements RepositoryFactoryInterface {
        /**
         * The list of EntityRepository instances
         */
        /**
         * The list of EntityRepository instances
         */
        /**
         * Initializes a new RepositoryFactory instance
         *
        /**
         * Initializes a new RepositoryFactory instance
         *
+        * @param ContainerInterface $container The container instance
         * @param RequestStack $request The request stack
         * @param RouterInterface $router The router instance
         * @param SluggerUtil $slugger The SluggerUtil instance
         * @param TranslatorInterface $translator The TranslatorInterface instance
         * @param string $locale The current locale
         */
         * @param RequestStack $request The request stack
         * @param RouterInterface $router The router instance
         * @param SluggerUtil $slugger The SluggerUtil instance
         * @param TranslatorInterface $translator The TranslatorInterface instance
         * @param string $locale The current locale
         */
-       public function __construct(private RequestStack $request, private RouterInterface $router, private SluggerUtil $slugger, private TranslatorInterface $translator, private string $locale) {
+       public function __construct(private ContainerInterface $container, private RequestStack $request, private RouterInterface $router, private SluggerUtil $slugger, private TranslatorInterface $translator, private string $locale) {
         * @param EntityManagerInterface $entityManager The EntityManager instance.
         * @param string $entityName The name of the entity.
         */
         * @param EntityManagerInterface $entityManager The EntityManager instance.
         * @param string $entityName The name of the entity.
         */
-       private function createRepository(EntityManagerInterface $entityManager, string $entityName): ObjectRepository {
+       protected function createRepository(EntityManagerInterface $entityManager, string $entityName): ObjectRepository {
                //Get class metadata
                $metadata = $entityManager->getClassMetadata($entityName);
 
                //Get class metadata
                $metadata = $entityManager->getClassMetadata($entityName);
 
                $this->locale = $this->request->getCurrentRequest()?->getLocale() ?? $this->locale;
 
                //Return repository class instance
                $this->locale = $this->request->getCurrentRequest()?->getLocale() ?? $this->locale;
 
                //Return repository class instance
-               //XXX: router, slugger, translator and locale arguments will be ignored by default
-               return new $repositoryClass($entityManager, $metadata, $this->router, $this->slugger, $this->translator, $this->locale);
+               //XXX: container, router, slugger, translator and locale arguments will be ignored by default
+               return new $repositoryClass($entityManager, $metadata, $this->container, $this->router, $this->slugger, $this->translator, $this->locale);