初めてのCakePHP
Railsはいいと思うのですが、使い慣れたPHPでやるならこれかなぁ、ということでちょっとお勉強。
cakePHPは全く触ったことなし。EthnaでちょっとしたAPLを作ったのとRailsで遊んだくらい。
教科書はamazon:CakePHPによる実践Webアプリケーション開発。
とりあえず読んだだけですが。。
DB接続の準備
projectを作ったあとに、bakeを実行するとDB設定をするようです。
「bake」というのは、コントローラやモデルを作ったりするコマンドみたい。
Ethnaでいうとethna、Railsだとrailsか?cakeを焼くからbakeなのか。。
Mysqlをいつも使っているので、デフォルトでOK。
DBは先に作って置く必要があるみたい。
DBへテーブルを登録
schemaを使ってテーブルを作るのが吉のようだ。
- schemaファイルを作る
- schemaファイルを編集し、カラムを定義
- schemaを実行(こういう表現でいいのか?)
モデルの作成
1テーブル1モデルだそうな。
コントローラの作成
アプリケーション(=projectとほぼ同義?)に対し、コントローラを作る。
作るときに使うモデルを指定するようです。
だから先にモデルを作るのかな。
ここまででscaffoldができる
view は作らなくても、足場が勝手に作ってくれるということか。
scaffoldだけじゃちょっとね。。
scaffoldだけだと、実際に使うアプリケーションにはちょっと、、なのでカスタマイズを。
コントローラへアクション追加
scaffoldのINDEXをオーバーライドして、
- 入力値から、検索条件を求める
- 検索条件つきのモデル内関数を呼ぶ
- viewにセットする
というアクションをつくる
コンポーネントを使うので、インポートしておく。
コンポーネントを作る
入力値から検索条件を求める処理をcomponentに登録して、汎用化
componentのファイルは自分で作るみたい。
ここも参考にしてみた。http://gihyo.jp/dev/serial/01/cakephp/0012
モデルに関数を追加
前述の「検索条件付きのモデル内関数」をここで作る。
SQLにセットする値を渡しているようだ
今日のまとめ
- DB設計がちゃんとできてないとダメなんだろうな・・・
- 画面についても、ちゃんと部品化できていないとだめだな。
- ネーミングルールを決めないとダメですな