dot-dependency-injection determines the entity a repository is related to by looking at the #[Entity] attribute, added to the repository class.
<?php
declare(strict_types=1);
namespace YourApp\Repository;
#[\Dot\DependencyInjection\Attribute\Entity(name: YourApp\Entity\Example::class)]
class ExampleRepository extends Doctrine\ORM\EntityRepository
{
}
Each entity repository must extend Doctrine\ORM\EntityRepository.
Open the ConfigProvider of the module where your repository resides.
Add a new entry under factories, where the key is your repository FQCN and the value is Dot\DependencyInjection\Factory\AttributedRepositoryFactory::class.
See the below example for a better understanding of the file structure.
<?php
declare(strict_types=1);
namespace YourApp;
class ConfigProvider
{
public function __invoke(): array
{
return [
'dependencies' => $this->getDependencies(),
];
}
public function getDependencies(): array
{
return [
'factories' => [
YourApp\Repository\ExampleRepository::class => Dot\DependencyInjection\Factory\AttributedRepositoryFactory::class,
],
];
}
}