RepositoryServiceBundle
What ?
A symfony bundle that eases creation of doctrine ORM repositories as services., (*1)
It will create a service for each registered entity in the default entity manager., (*2)
If you provide a repository
tag for a service, it will automatically create an alias and configure doctrine to make it the custom repository class of the associated entity (specified by the for
attribute)., (*3)
How ?
install
composer require docteurklein/repository-service-bundle
register the bundle
``` php, (*4)
public function registerBundles()
{
$bundles = [
new \DocteurKlein\RepositoryServiceBundle,
// …
];
return $bundles;
}
## Examples
> Note: The following examples use JmsDiExtraBundle to simplify code.
Given an entity:
```php
namespace Model;
/** @ORM\Entity */
class Product
{
/** @ORM\Id */
private $id;
}
And the following service:, (*5)
namespace Repository;
/**
* @Service("products")
* @Tag("repository", attributes={"for"="Model\Product"})
*/
final class Products extends EntityRepository
{
}
Then the DIC contains a factory service named repo.model_product
for the repository (using ManagerRegistry::getRepository()
)., (*6)
It also contains an alias named products
pointing to the repo.model_product
service., (*7)
The custom repository class is automatically configured to point to Repository\\Products
., (*8)