我在Symfony3项目中为Doctrine实体设置了自定义映射设置,如下所示:
MyModel:
type: yml
dir: %kernel.root_dir%/../src/AppBundle/Resources/config/doctrine/MyModel
prefix: MyProject\MyModel\Model
is_bundle: false
假设我有一个实体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
有点冗长,但是考虑到文件夹结构确实是src / AcmeBundle / Resources,它应该可以工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句