
Bundle以外の場所にDoctrineのEntityを配置する
November 6, 2015,
tags:
symfony
doctrine2
php
Symfony2を使っていて、どうしてもBundleではないところにEntityを置きたい場合がでてきます。
昔はそんなこと出来ないと勝手に思い込んでいましたが、できるんですよね
設定方法
config.yml
のdoctrine.ormの設定で、簡単に設定できます。
orm:
auto_generate_proxy_classes: "%kernel.debug%"
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
mappings:
hoge:
is_bundle: false
alias: Hoge
type: annotation
dir: %kernel.root_dir%/../src/Hoge/Entity
prefix: Hoge\Entity
これだけです。
Controllerでリポジトリを取得してみる。
alias
にHoge
と指定したので、Hogeのあとにsrc/Hoge/Entity
の中に作ったエンティティ名を指定すれば、リポジトリが取得できます。
$this->getDoctrine()->getRepository('Hoge:Fuga');
最後に
他にも様々設定ができるので、公式のドキュメントを確認してみることをおすすめします。