symfony & Doctrine その2

今回はaskeetのday02をDoctrineで実行してみたいと思います。

まずは、Doctrineを使うためのプラグインのインストールです。インストールといっても、symfonyで作成したプロジェクトディレクトリ直下にある、pluginsディレクトリで以下のコマンドを実行すれば終了です。


svn co http://svn.symfony-project.com/plugins/sfDoctrinePlugin/branches/1.0 sfDoctrinePlugin
../symfony cc

symfony自体をsvnでチェックアウトして使用している場合はsvnのレポジトリの1.0を1.1に変更する必要があります。続いて設定ですが、Propelでも使用する config/databases.yml をまず変更します。Propelの場合と異なるのは、class にsfDoctrineDatabaseを設定することだけです。


all:
  db_name:
    class: sfDoctrineDatabase
    param:
      dsn: mysql://root@localhost/hoge

データベースの設定はこれで終了です。propel.iniに相当するものはありません。データベースの設定の次は、config/schema.yml にあたるものを作成するのですが、今回はaskeetのテーブルを使用したいと思います。askeetのテーブルについては、ここを参照してください。askeetではPropel用のschema.ymlで記述されていますが、それをDoctrineで記述するとこのようになります

このファイルをconfig/doctrine/sample.yml のように保存してください。そうしたら以下のコマンドでモデルを作成します。


symfony doctrine-build-model

askeetと同じようにCRUDを実装するには、以下のコマンドを実行します。propelがdoctrineに置き換わっているだけで、実際の表示もほとんどかわりません。


symfony doctrine-generate-crud

これで askeet の day 02 は終わりですが、引き続きDoctrineを使った場合の askeet を掲載していきたいと思います。