お仕事でsymfonyをやることになったので、メモします。symfony1.4でテンプレートエンジンにはSmartyを使う予定。ORMはDoctrineで(多分)。

Djangoと決定的に違う点は、symfonyはYAMLを使って設定ファイルをいっぱい書いていく点。どうなんだろうねぇ。こういうの。コードと比べてどの程度メリットがあるのかは、まだ分からず。

DjangoのORMと違うのは、モデルクラスを作成する前にもやっぱりYAMLで設定ファイルを書くこと。そのあとでcode generatorで自動生成する。

参考

チュートリアルはPractical symfony3日目:データモデル

リファレンス

インストール

ダウンロードしてきた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

にスキーマを設定する。

接続情報の作成

C:\webapp\symfony\jobeet\config\databases.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