docteurklein/repository-service-bundle

一个symfony扩展包,帮助您自动注册doctrine ORM仓库作为服务

1.0.0 2016-09-08 10:05 UTC

This package is auto-updated.

Last update: 2024-08-29 03:31:34 UTC


README

是什么?

一个symfony扩展包,简化了将doctrine ORM仓库作为服务创建的过程。

它将为默认实体管理器中注册的每个实体创建一个服务。

如果您为服务提供了一个 repository 标签,它将自动创建一个别名,并配置doctrine使其成为关联实体(通过 for 属性指定)的定制仓库类。

如何?

安装

composer require docteurklein/repository-service-bundle

注册扩展包

    public function registerBundles()
    {
        $bundles = [
            new \DocteurKlein\RepositoryServiceBundle,
            // …
        ];

        return $bundles;
    }

示例

注意:以下示例使用JmsDiExtraBundle简化代码。

给定一个实体

namespace Model;

/** @ORM\Entity */
class Product
{
    /** @ORM\Id */
    private $id;
}

以及以下服务

namespace Repository;

/**
 * @Service("products")
 * @Tag("repository", attributes={"for"="Model\Product"})
 */
final class Products extends EntityRepository
{
}

那么DIC包含一个名为 repo.model_product 的工厂服务用于仓库(使用 ManagerRegistry::getRepository())。

它还包含一个名为 products 的别名,指向 repo.model_product 服务。

定制仓库类将自动配置为指向 Repository\\Products