それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

symfonyで秒殺

symfonyのアプリケーションは project --> app --> module の階層構造になっていて、
http ://PROJECT_WEB/APP_NAME/MODULE/[引数]
でアクセスできる。

とりあえず、Projectを作る

cd WEB_HOME
mkdir sandbox
cd sandbox
symfony init-project sandbox

DBを使うので、DBの設定を書き足す

vim ./conf/propel.ini
############
propel.database.url        = mysql://localhost/sandbox <<PEARのDSN形式

symfonyにはAccessのようなフォームビルダーがオマケでついてくる。


秒殺でフォームを作る

DBにテーブルがない場合。

phpMyAdminでDBにテーブルを作るのは、いつものことだけど、それsymfonyがやってくれる。

vim ./config/schema.yml
###################YAML形式
--
  propel:
    $テーブル名:
      _attributes: { phpName: $クラス名 }
      id:
      $カラムA:   varchar(255)
      $カラムA:   longvarchar

#################
symfony propel-build-sql
symfony propel-insert-sql

DBにテーブルが出来たら

symfony propel-build-model

これでPROPELのORマッピングを作ってくれる。

フォームの自動生成

symfonyには prople admin ツールがついてくるので楽だった

symfony init-app backend
symfony propel-init-admin backend $テーブル名 $テーブル名に対応するCLASS
cp -R PEAR_HOME/data/symfony/web/sf   PROJECT_HOME/web/

これで ./backend_dev.php/$テーブル にアクセスすればOKだった。

初回起動は、symfonyがappをコンパイル(実行形式)するので時間がかかる。2回目以降はキャッシュへのアクセスになるので早くなる。データがおかしいときは、キャッシュが悪さしているかもしれないのでキャッシュを削除

symfony cc

HOGE_dev.php は開発用

デバッグ情報や、エラー情報が閲覧できるし、実行時間を自動計測してくれる。この辺がメッチャ便利。
symfonyがどの順にクラスを実行したかなどはsymfonyの動作原理を知るためにも目を通しておくと便利だった。

たまらなく嬉しいのがSQLのこと。実行したSQLデバッグで表示され、SQL実行時間がSQL文単位で計測されているのが嬉しい。

実行時間が、スクリプト毎に計測されるのも嬉しい。