您好我正在使用Symfony DIC来配置Doctrine。 这与Doctrine 2.0完全兼容,但是想要升级到v2.1并需要添加一些额外的配置,如下所示。
$ reader = new \ Doctrine \ Common \ Annotations \ AnnotationReader();
$reader->setDefaultAnnotationNamespace('Doctrine\ORM\Mapping\\');
// new code necessary starting here
$reader->setIgnoreNotImportedAnnotations(true);
$reader->setEnableParsePhpImports(false);
我的DIC配置上面的代码没有我的问题:
<service id="doctrine.metadriver" class="Doctrine\ORM\Mapping\Driver\AnnotationDriver">
<argument type="service">
<argument type="service" id="doctrine.cache" />
<service class="Doctrine\Common\Annotations\AnnotationReader">
<call method="setDefaultAnnotationNamespace">
<argument>Doctrine\ORM\Mapping\</argument>
</call>
<call method="setIgnoreNotImportedAnnotations">
<argument>TRUE</argument>
</call>
<call method="setEnableParsePhpImports">
<argument>FALSE</argument>
</call>
</service>
</argument>
<argument>%doctrine.entity.path%</argument>
</service>
我的问题是如何将以下内容添加到DIC配置中?
$reader = new \Doctrine\Common\Annotations\CachedReader(
new \Doctrine\Common\Annotations\IndexedReader($reader), new ArrayCache()
);
答案 0 :(得分:1)
它可能不是一个完全正常工作的配置,但应该给你一些提示:
<service id="annotations.base_reader"
class="Doctrine\Common\Annotations\AnnotationReader"
public="false">
<call method="setDefaultAnnotationNamespace">
<argument>Doctrine\ORM\Mapping\</argument>
</call>
<call method="setIgnoreNotImportedAnnotations">
<argument>TRUE</argument>
</call>
<call method="setEnableParsePhpImports">
<argument>FALSE</argument>
</call>
</argument>
</service>
<service id="annotations.indexed_reader"
class="Doctrine\Common\Annotations\IndexedReader"
public="false">
<argument type="service" id="annotations.base_reader" />
</service>
<service id="annotations.cached_reader"
class="Doctrine\Common\Annotations\CachedReader">
<argument type="service" id="annotations.indexed_reader" />
<argument />
</service>
<service id="annotation_reader" alias="annotations.cached_reader" />
<service id="doctrine.metadriver" class="Doctrine\ORM\Mapping\Driver\AnnotationDriver">
<argument type="service" id="annotation_reader" />
<argument>%doctrine.entity.path%</argument>
</service>