symfony askeet Day 2
- Propelの設定
- MySQLの設定
- Questionという機能を作る
Propelの設定
Day 2が終わるとこんなテーブルができあがるようです。
mysql> show tables; +------------------+ | Tables_in_askeet | +------------------+ | ask_answer | | ask_interest | | ask_question | | ask_relevancy | | ask_user | +------------------+ 5 rows in set (0.00 sec)
ここで気になったのがschema.xmlって存在。
何者?と思ったので検索することに。
http://wiki.symfony.jp/index.php?propel
案外近場に説明があったので読むとPropelってモノの設定ということらしい。
XMLで書かれているとのこと。
ということでschema.ymlを指示通りさくっと削除。
svn delete config/schema.yml
とりあえず、schema.xmlの内容がaskeet上に書かれているのでさくっとコピペ。
今、まとめを書いてて思いましたがテーブルの設定を書いていたのですね。
コピペして保存したら今度はpropel.iniの設定。
config内にあるみたいなのでこれもさくっと開く。
propel.database.urlを自分の環境に合わせろよとあるので設定。
当環境では以下の通り (IDはroot、DB名はaskeetということにしてます。)
propel.database.url = mysql://root@localhost/askeet
さっき消したschema.ymlを作るために以下を実行。
symfony propel-build-schema
これでconfig/schema.ymlができた。
よし、ということで次はPropelの設定。
今回はMySQLでInnoDBを使用するということで
propel.iniのどっかに
propel.mysql.tableType = InnoDB
を追加する。
追加したら
symfony propel-build-model
を実行。オブジェクトモデルを作成する。
MySQLの設定
そういえば、MySQLにDBを作り忘れたのでさくっと作ります。
$ mysql5 -uroot mysql > create database askeet;
ここらへんは、環境によって大きく違いそうなので
askeetというDBを作ればいいということですね。
DBができたら次やることは重要。
config/databases.ymlを開いて確認する。
なぜか、コメントアウトされている><
コメントアウトを消して保存。
できたらSQL文を作ろう。
symfony propel-build-sql
data/sql/lib.model.schema.sqlというファイルが作られました。
これをMySQLに流しましょう。
mysql5 -uroot askeet < data/sql/lib.model.schema.sql
Questionという機能を作る
設定も終わったのであとは早速アプリを作っていきましょう。
symfony propel-generate-crud frontend question Question
これはどういうことかと調べたら
参考:[ThinkIT] 第2回:Symfonyを例にしたフレームワークを使ったPHP開発 (2/3)
データベースのスキーマをベースに自動生成してくれるらしい。便利><
で、キャッシュを削除してブラウザで見てみる。
symfony cc frontend config
http://askeet.localhost/question
うぉーできてる><