Jak*_*zak 2 php yaml symfony doctrine-orm
我在 Symfony3 项目中为 Doctrine 实体设置了自定义映射设置,如下所示:
MyModel:
type: yml
dir: %kernel.root_dir%/../src/AppBundle/Resources/config/doctrine/MyModel
prefix: MyProject\MyModel\Model
is_bundle: false
Run Code Online (Sandbox Code Playgroud)
假设我有一个 entity MyProject\MyModel\Model\SubNamespace\MyEntity。现在,我必须将其 yml 映射放入 中%kernel.root_dir%/../src/AppBundle/Resources/config/doctrine/MyModel/SubNamespace.MyEntity.orm.yml,并且它工作正常。
我可以将 Doctrine 配置为能够在子文件夹中组织映射文件,而不是将文件名作为前缀后命名空间部分的串联吗?
在这种情况下,如果 %kernel.root_dir%/../src/AppBundle/Resources/config/doctrine/MyModel/SubNamespace/MyEntity.orm.yml
原因是映射目录正在增长,并且很难在其中找到任何特定文件。
当然,对每个子文件夹都进行配置并不是一个解决方案。;-)
查看源代码,没有什么可以处理子文件夹。但是诀窍可能是将每个文件夹添加到不同的“映射”中,据我所知,这些文件夹不必坚持使用您的 Symfony 包:
doctrine:
# ...
orm:
# ...
mappings:
AcmeBundleFoo:
type: yml
dir: AcmeBundle/Resources/doctrine/Foo
AcmeBundleBar:
type: yml
is_prefix: false # you are free to let Symfony guess it or to be explicit
dir: AcmeBundle/Resources/doctrine/Bar
Run Code Online (Sandbox Code Playgroud)
有点冗长,但它应该可以工作,因为您的文件夹结构确实是 src/AcmeBundle/Resources。
| 归档时间: |
|
| 查看次数: |
813 次 |
| 最近记录: |