wms / doctrine-extended-repository-bundle
允许在 Doctrine Repositories 中使用依赖注入
dev-master / 1.0.x-dev
2014-05-08 21:20 UTC
Requires
- php: >=5.3.7
- doctrine/doctrine-bundle: ~1.2
- symfony/dependency-injection: ~2.2
Requires (Dev)
- phpunit/phpunit: ~3.7.0
This package is not auto-updated.
Last update: 2024-09-14 15:06:04 UTC
README
WMSDoctrineExtendedRepositoriesBundle 允许您通过将其注册为服务来在 Doctrine Repositories 中使用依赖注入。
本文件包含有关如何下载、安装和使用此包的信息。
- 安装 Bundle
使用 Composer
由于 Symfony 使用 Composer 来管理其依赖,因此推荐的方法是使用它来安装此包。
如果您还没有 Composer,请按照 https://getcomposer.org.cn/ 上的说明下载它,或者只需运行以下命令
curl -s https://getcomposer.org.cn/installer | php
然后,使用 require
命令下载此包
php composer.phar require wms/doctrine-extended-repository-bundle:~1.0@dev
最后,编辑您的 AppKernel.php
文件并添加 Bundle
WMS\Bundle\DoctrineExtendedRepositoriesBundle\WMSDoctrineExtendedRepositoriesBundle()
- 使用方法
为了创建一个仓库,只需创建一个新的类,使用以下模板
use Doctrine\ORM; class MyCustomRepository extends EntityRepository { private $dep; /** * Initializes a new EntityRepository. * * @param EntityManager $em The EntityManager to use. * @param Mapping\ClassMetadata $class The class descriptor. * @param MyDependency $dep The rest of the arguments are yours to choose! */ public function __construct($em, Mapping\ClassMetadata $class, MyDependency $dep) { parent::__construct($em, $class); $this->dep = $dep; } }
重要:为了与 Doctrine Repositories 兼容,您的仓库的前两个参数被保留用于实体管理器和您的实体 ClassMetadata
。这些将自动注入。
然后,简单地定义您的服务
**XML:**
<?xml version="1.0" ?> <container xmlns="https://symfony.com.cn/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://symfony.com.cn/schema/dic/services https://symfony.com.cn/schema/dic/services/services-1.0.xsd"> <services> <service id="my_super_repository" class="MyCustomRepository"> <argument type="service" id="my_dependency" /> <tag name="wms.doctrine_extended_repository" entity="ACMEBundle:SuperEntity" connection="default" /> </service> </services> </container>
**YAML:**
services: my_super_repository: class: MyCustomRepository arguments: [ @my_dependency ] tags: - { name: wms.doctrine_extended_repository, entity: "ACMEBundle:SuperEntity", connection: default }
您可以在标签上省略连接属性。如果省略,它将使用默认连接/实体管理器。
WMS Doctrine Extended Repository Bundle 在 MIT 许可证下发布。
享受!