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 を掲載していきたいと思います。