Doctrine2を使った開発のワークフローで悩み中
symfony 1では、ORM Designerを使ってスキーマ設計→schema.yml書き出し→モデルやDBを生成(必要に応じてマイグレーション)というワークフローでした。
こういったワークフローをDoctrine2を使った開発でもやりたいと思い、Doctrine2のコマンド等とあれこれ格闘していますが、今のところまだ「これだ」と思える方法が見つかっていません。
現状、ぶつかった問題点
- ORM DesignerはDoctrine2をサポートしているが完全ではなく、リレーションの情報など、一部書き出されたYAMLが不完全
- YAMLでマッピング設定を書き、doctrine:generate:entitiesでエンティティを生成すると、getter/setterなども一挙に生成できて楽、しかし問題も
- エンティティにアノテーションでマッピングを記述するのが現状もっともスムーズに思える
- マッピング情報はYAML、エンティティにはマッピング情報を記述しないというやり方
- 2重管理的になるので避けたい(エンティティ側にもメンバー変数などの宣言が必要なため)
- リレーション(Doctrine2ではアソシエーションと呼んでいる)関連
現時点での結論としては、
というやり方がもっとも無難っぽいです。(あくまで個人的な結論)