/**
* The list of EntityRepository instances
*
- * @var ObjectRepository[]
+ * @var array
*/
- private $repositoryList = [];
+ private array $repositoryList = [];
/**
* The list of languages
*
- * @var string[]
+ * @var array
*/
- private $languages = [];
+ private array $languages = [];
+
+ /**
+ * The current locale
+ *
+ * @var string
+ */
+ private string $locale;
/**
* The RouterInterface instance
*
* @var RouterInterface
*/
- private $router;
+ private RouterInterface $router;
/**
* The SluggerUtil instance
*
* @var SluggerUtil
*/
- private $slugger;
+ private SluggerUtil $slugger;
/**
* The TranslatorInterface instance
*
* @var TranslatorInterface
*/
- private $translator;
+ private TranslatorInterface $translator;
/**
* Initializes a new RepositoryFactory instance
* @param SluggerUtil $slugger The SluggerUtil instance
* @param TranslatorInterface $translator The TranslatorInterface instance
* @param array $languages The languages list
+ * @param string $locale The current locale
*/
- public function __construct(RouterInterface $router, SluggerUtil $slugger, TranslatorInterface $translator, array $languages) {
+ public function __construct(RouterInterface $router, SluggerUtil $slugger, TranslatorInterface $translator, array $languages, string $locale) {
//Set router
$this->router = $router;
//Set languages
$this->languages = $languages;
+
+ //Set locale
+ $this->locale = $locale;
}
/**
* {@inheritdoc}
*/
- public function getRepository(EntityManagerInterface $entityManager, $entityName): ObjectRepository {
+ public function getRepository(EntityManagerInterface $entityManager, mixed $entityName): ObjectRepository {
//Set repository hash
$repositoryHash = $entityManager->getClassMetadata($entityName)->getName() . spl_object_hash($entityManager);
$repositoryClass = $metadata->customRepositoryClassName ?: $entityManager->getConfiguration()->getDefaultRepositoryClassName();
//Return repository class instance
- //XXX: router, slugger, translator and languages arguments will be ignored by default
- return new $repositoryClass($entityManager, $metadata, $this->router, $this->slugger, $this->translator, $this->languages);
+ //XXX: router, slugger, translator, languages and locale arguments will be ignored by default
+ return new $repositoryClass($entityManager, $metadata, $this->router, $this->slugger, $this->translator, $this->languages, $this->locale);
}
}