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 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,
],
];
}
}