以下の簡単な要件のエンティティを実装します。商品情報エンティティ商品名と価格、配送種別を持つ商品には通常の商品と特注品とがあり、それぞれに特殊なロジックが必要なので、別々のエンティティクラスに分けておきたいまた、今のところ大きな意味はありませんが、価格はValueObjectにしておきます。配送種別は、現段階では単に文字列で種別を格納しておきます。それぞれ以下のようになります。エンティティを実装する際、最初の段階から各フィールドの制約(Assert)まで書くようにしておくのは、開発時のドキュメンテーションとしての効果もあってオススメです。}}DBのテーブルを生成ここで一旦、エンティティの実装および定義が有効か確認するために、データベースのスキーマを生成しておきましょう。配下へまとめるようになりました。配下の方へ配置します。このサンプルでは、以下のような配置にしました。items.ymlYAMLフィクスチャファイル商品情報を登録するYAMLフィクスチャファイルは、以下のようになります。ValueObjectを使っているItemPriceの部分がやや手間ですが、スッキリと定義できますね。aliceの細かな機能については、aliceのドキュメントを参照してください。estimationフィクスチャを読み込むテスト次は、YAMLのフィクスチャをテストコードから読み込んでみましょう。ItemTest.phpを以下のように作成します。メソッドを呼び出すだけで、フィクスチャのロードが完了します。Symfony2入門』では、利用しているliip/functional-test-bundleのバージョンが古く、この時はわざわざDoctrineFixturesBundle形式のローダークラスを用意しないといけませんでした(そのためにDoctrineFixturesBundleのインストールも必要でした)。これらは今は不要です。プロジェクト全体のテストを実行すると、以下のようにテキストが出力されます。3.2でYAMLフィクスチャを使う方法と、Doctrineの単一テーブル継承、ValueObjectを使う例をざっと紹介しました。この記事の応用編として、次回はInterfaceとそれを実装する複数の具象クラスから成るValueObjectを利用する方法を紹介する予定です。TtskchTheme。