Symfony2: よりかんたんになりました (パート 3)
by Fabien Potencier – May 06, 2011
「Symfony2 がかんたんになった」ことに関する以前のブログ投稿において、Nathan さんが次の価値あるコメントをしてくださりました。
**すばらしい**!この方向性を賞賛します。Doctrine のスキーマファイルの場所を短くする機会はありますか?エンティティごとにファイルを次のようにしたいです: src/Mycompany/MyBundle/Resources/config/doctrine/metadata/orm/Mycompany.MyBundle.Entity.Orderset.dcm.yml
しかし、「本気ですか?config/schema.yml はどうなりましたか?」と同じ意見です。Larry Wall の Perl に対する哲学が好きです - 「かんたんなことをかんたんに、困難なことを実現可能に」
Nathan さん、話は聞きましたよ!。次の beta2 において、不要な metadata/orm/ の部分を削除することでパスを短くしました。ですので、Orderset クラスのマッピングを定義することは src/Mycompany/MyBundle/Resources/config/doctrine/metadata/orm/Mycompany.MyBundle.Entity.Orderset.dcm.yml の代わりに src/Mycompany/MyBundle/Resources/config/doctrine/Mycompany.MyBundle.Entity.Orderset.orm.yml において実現可能です。 ほんの少しはよくなりましたが、それほどではないですよね? 不幸なことに、Doctrine2 はクラスごとに1つのファイルのルールを強制し、ファイルの名前のルールを完全修飾クラス名に強制します。しかしかつての Perl ディベロッパとして、そしてファイルの名前が短いことはつねによいことなので、このルールを避ける方法をいくつか探してみたところ、とてもかんたんであることが判明し、DoctrineBundle はメタデータを単独のファイルにマッピングする複数の定義をサポートするようになりました。ですので、src/Mycompany/MyBundle/Resources/config/doctrine/mapping.orm.yml のなかでデータをマッピングする Orderset クラスを定義することもできます。これは以前よりもずっと短くなり、もちろん、完全なオプションです。両方の可能性を混在させて1つのバンドルにマッチさせることができます。マッピングデータの大半を1つのメインファイルに定義し、たくさんのメタデータの情報を含むエンティティに対して個別のファイルを使い続けます。しかしすべてのマッピングデータを中心的な場所で定義する可能性はどうでしょうか?筆者のように、Symfony2 のコンテキストの外側で Model を再利用できるようにしたい; 特定のバンドルのもとで Entity クラスとマッピングデータを保存したくないとします。では、たとえば、app/config/mapping.orm.yml にすべてを保存するのはどうでしょうか?うん、これも実現可能で、シンプルに動くコンフィギュレーションは次のようになります。
---
doctrine:
orm:
mappings:
global:
type: yml
dir: %kernel.root_dir%/config
prefix: Blog\Entity
吉報は doctrine:generate:entities コマンドはこれをネイティブに扱うことができます。
./app/console doctrine:generate:entities Blog/Entity --path=src/
古い src/Mycompany/MyBundle/Resources/config/doctrine/metadata/orm/Mycompany.MyBundle.Entity.Orderset.dcm.yml ファイルに別れを告げ、app/config/mapping.orm.yml を使うことを楽しみましょう。 フィードバックは Symfony2 を改善させる秘訣です。
インデックス
Document Index
関連ページリスト
Related Pages
- 日経ソフトウェア7月号にsymfonyの特集記事が掲載されました
- A week of symfony #178 (24->30 May 2010)
- symfony 1.3.5 と 1.4.5
- The State of Symfony2 オンラインカンファレンス
- 第1回 Symfonyユーザー会IRC集会を開催しました
- A week of symfony #179 (31 May -> 6 June 2010)
- A week of symfony #180 (7->13 June 2010)
- 第2回 Symfonyユーザー会IRC集会を開催しました
- The State of Symfony2参加レポート - Symfony2が大変なことになっています!
- A week of symfony #181 (14->20 June 2010)
- The State of Symfony2参加レポート - Symfony2はすごい!
- The State of Symfony2カンファレンスのスライド
- A week of symfony #182 (21->27 June 2010)
- セキュリティー リリース: symfony 1.3.6 と 1.4.6
- 第3回 Symfonyユーザー会IRC集会を開催しました
- A week of symfony #183 (28 June -> 4 July 2010)
- A week of symfony #184 (5->11 July 2010)
- 第4回 Symfonyユーザー会IRC集会を開催しました
- A week of symfony #185 (12->18 July 2010)
- A week of symfony #186 (19->25 July 2010)
- ドキュメント翻訳温泉ツアーを開催しました(7/31~8/1)
- A week of symfony #187 (26 July -> 1 August 2010)
- 第5回 Symfonyユーザー会IRC集会を開催しました
- OSC Nagoya 2010にてブース出展&セミナーを行いました(8/7)
- A week of symfony #188 (2->8 August 2010)
- A week of symfony #189 (9->15 August 2010)
- 第6回 Symfonyユーザー会IRC集会を開催しました
- A week of symfony #190 (16->22 August 2010)
- A week of symfony #191 (23->29 August 2010)
- A week of symfony #192 (30 August -> 5 September 2010)
- A week of symfony #193 (6->12 September 2010)
- Symfony2 PR3 リリース; 手を貸してください
- A week of symfony #194 (13->19 September 2010)
- 第8回 Symfonyユーザー会IRC集会を開催しました
- A week of symfony #195 (20->26 September 2010)
- PHP Matsuri 2010 参加レポート(Symfony 編)
- A week of symfony #196 (27 September -> 3 October 2010)
- 第9回 Symfonyユーザー会IRC集会を開催しました
- A week of symfony #197 (4->10 October 2010)
- A week of symfony #198 (11->17 October 2010)
- 第10回 Symfonyユーザー会IRC集会を開催しました
- A week of symfony #199 (18->24 October 2010)
- A week of symfony #200 (25->31 October 2010)
- 第11回 Symfonyユーザー会IRC集会を開催しました
- A week of symfony #201 (1->7 November 2010)
- A week of symfony #202 (8->14 November 2010)
- A week of symfony #203 (15->21 November 2010)
- A week of symfony #204 (22->28 November 2010)
- 第 12 回 Symfony ユーザー会 IRC 集会を開催しました
- Symfony アドベントカレンダー 2010 (Japanese) が始まります
- Symfony2 PR4(プレビューリリース 4)がリリースされました
- A week of symfony #205 (29->5 November 2010)
- 第 13 回 Symfony ユーザー会 IRC 集会を開催しました
- A week of symfony #206 (6->12 December 2010)
- A week of symfony #207 (13->19 December 2010)
- A week of symfony #208 (20->26 December 2010)
- A week of symfony #209 (27 December 2010 -> 2 January 2011)
- A week of symfony #210 (3->9 January 2011)
- Symfony2への寄付にご協力ください!
- 第2回 Symfony2勉強会 参考情報
- 第2回 Symfony2 勉強会レポート
- A week of symfony #214 (31 January -> 6 February 2011)
- 第3回 Symfony2勉強会(名古屋)を開催しました
- A week of symfony #211 (10->16 January 2011)
- A week of symfony #212 (17->23 January 2011)
- A week of symfony #213 (24->30 January 2011)
- A week of symfony #215 (7->13 February 2011)
- symfony 1.3.9 と 1.4.9
- A week of symfony #216 (14->20 February 2011)
- A week of symfony #217 (21->27 February 2011)
- A week of symfony #218 (28 February -> 6 March 2011)
- A week of symfony #219 (7->13 March 2011)
- symfony 1.3.10 と 1.4.10: セキュリティリリース
- A week of symfony #220 (14->20 March 2011)
- Symfony2 の最終バージョンまで... もう少しかかります
- PHPカンファレンス関西レポート(日本Symfonyユーザー会編)
- A week of symfony #221 (21->27 March 2011)
- A week of symfony #223 (4->10 April 2011)
- A week of symfony #224 (11->17 April 2011)
- Symfony2: よりかんたんになりました
- Symfony2: Beta1 がリリースされました
- A week of symfony #225 (18->24 April 2011)
- A week of symfony #226 (25 April -> 1 May 2011)
- Symfony2: よりかんたんになりました (パート 2)
- Symfony2: よりかんたんになりました (パート 3)
- A week of symfony #227 (2->8 May 2011)
- A week of symfony #228 (9->15 May 2011)
- A week of symfony #229 (16->22 May 2011)
- Symfony2: アノテーションが改善されました
- Symfony2: beta2 がリリースされました
- Symfony2: beta3 が利用できるようになりました
- 海外のスライドで紹介された PHP ディベロッパ向けの学習書籍
- Symfony2: Beta4 が利用できるようになりました
- A week of symfony #232 (6->12 June 2011)
- Symfony2: Beta5 が利用できるようになりました
- A week of symfony #233 (13->19 June 2011)
- A week of symfony #234 (20->26 June 2011)
- A week of symfony #235 (27 June -> 3 July 2011)
- A week of symfony #236 (4->10 July 2011)
- A week of symfony #237 (11->17 July 2011)
- A week of symfony #238 (18->24 July 2011)
- A week of symfony #239 (25->31 July 2011)
- オープンソースカンファレンス2011名古屋(8/20)用チュートリアルの公開
- 第1回 Symfony2 勉強会レポート
- 第 13 回 Symfony ユーザー会 IRC 集会を開催しました
- Symfony 2.1: Doctrine 関係のバンドルが Doctrine グループへ移管されました
- [Doctrine] Symfony 向けバンドルが Doctrine グループへ移管されました
- Symfony 2.1.0 beta1 がリリースされました
- Symfony スタンダード・エディション
- Symfony勉強会 #6 レポート
- Symfony 2.3.0 - 最初のLTS(長期サポート) - がリリースされました
- A week of symfony #230 (23->29 May 2011)
- A week of symfony #231 (30 May -> 5 June 2011)
- A week of symfony #246 (12->18 September 2011)
- A week of symfony #247 (19->25 September 2011)
- A week of symfony #248 (26 September -> 2 October 2011)
- A week of symfony #249 (3->9 October 2011)
- A week of symfony #250 (10->16 October 2011)
- A week of symfony #251 (17->23 October 2011)
- A week of symfony #252 (24->30 October 2011)
- A week of symfony #253 (31 October -> 6 November 2011)
- A week of symfony #254 (7->13 November 2011)
- A week of symfony #255 (14->20 November 2011)
- A week of symfony #261 (26 December 2011 -> 1 January 2012)
- SymfonyアドベントカレンダーJP 2011
日本語ドキュメント
Japanese Documents
- 2012/07/04 Dia 17: Busca
- 2012/06/26 Giorno 15: Web Service
- 2012/06/26 Giorno 3: Il ~Modello dei dati~
- 2012/06/26 Day 15: Web Services
- 2012/06/26 Dia 3: O Modelo de Dados