めも帖

「めも帖」代わりにダラダラと書いていったり、めもしたりしているだけです。

symfony1.2のチュートリアル(Jobbet)3日目

日本語訳をしてくださっている方に感謝しつつ、3日目。

O/Rマッパー

Propelというのを使う。

データーベースの定義

  • schema.ymlというファイルを作る
  • configの下にある
    • work/jobeet/config/schema.yml

データーベースの設定

MacPortsでインストールしたMySQLを使っているので、こんな感じでした

mysqladmin5 -u root -p create jobeet
  • MySQLにはパスワードを設定しています
実行結果
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema | 
| jobeet             | 
| mysql              | 
| test               | 
+--------------------+
4 rows in set (0.10 sec)
ユーザーの作成
GRANT ALL ON jobeet.* TO sfuser@localhost IDENTIFIED BY "sfpass";
symfonyにデーターベースの設定を伝える
symfony configure:database "mysql:host=localhost;dbname=jobeet" sfuser sfpass

configディレクトリで実行したら、symfonyディレクトリで実行してね、とエラーが出ましたよ。もちろん、symfonyディレクトリ(プロジェクト用に作ったディレクトリであるwork/jobeet)で実行したら問題なく終了。
config/databases.ymlに結果が保存されます(これを手書きしてもいいらしい。もちろん、編集してもいいらしい)

SQL文の生成
$ symfony propel:build-sql
SQL文の実行
$ symfony propel:insert-sql

生成したSQLを実行。実行結果は

mysql> show tables;
+----------------------+
| Tables_in_jobeet     |
+----------------------+
| jobeet_affiliate     | 
| jobeet_category      | 
| jobeet_job           | 
| jobeet_job_affiliate | 
+----------------------+
4 rows in set (0.00 sec)
modelの生成
$ symfony propel:build-model

こうすると、modelのクラスが./lib/modelの下に生成されます。

一連のショートカット

ショートカットもあるらしい。