Doctrineの使い方
お仕事でsymfonyをやることになったので、メモします。symfony1.4でテンプレートエンジンにはSmartyを使う予定。ORMはDoctrineで(多分)。
Djangoと決定的に違う点は、symfonyはYAMLを使って設定ファイルをいっぱい書いていく点。どうなんだろうねぇ。こういうの。コードと比べてどの程度メリットがあるのかは、まだ分からず。
DjangoのORMと違うのは、モデルクラスを作成する前にもやっぱりYAMLで設定ファイルを書くこと。そのあとでcode generatorで自動生成する。
参考
チュートリアルはPractical symfonyの3日目:データモデル。
インストール
ダウンロードしてきたzipファイルを
C:\\symfony\\1.4.4
に展開する。
symfonyコマンド
Windowsだとsymfonyコマンドが使いづらいので、
C:\\symfony\\1.4.4\\data\\bin\\symfony.bat
を
C:\\webapp\\symfony\\jobeet\\
にコピーしておく。
スキーマの作成
Apache用ディレクトリを
C:\\webapp\\symfony
とすると、
C:\\webapp\\symfony\\jobeet\\config\\doctrine\\schema.yaml
にスキーマを設定する。
接続情報の作成
dsn: 'mysql:host=127.0.0.1;dbname=jobeet'
host=localhostとすると接続できなくてハマる
モデルクラスの作成
symfony.bat doctrine:build --model
テーブル定義sqlの作成
symfony.bat doctrine:build --sql
テーブル作成sqlの実行
symfony.bat doctrine:insert-sql
build --model、build --sql、insert-sqlをすべて実行する
symfony.bat doctrine:build --all --no-confirmation
初期データの投入
symfony.bat doctrine:data-load
data/fixtureに初期データを記載したxxx.ymlファイルを用意しておくこと
フォーム、フィルタ、モデルを作成し、データベースをすべて削除してから、すべてのテーブルを再作成する
symfony.bat doctrine:build --all --and-load
基本的な操作機能モジュールを生成する
symfony.bat doctrine:generate-modele --with-show --non-verbose-templates frontend job JobeetJob