2009/10/04
CakePHP とは PHP で書かれた WEB アプリケーションフ レームワーク オブジェクト指向 MVC ( Model, View, Controller ) データ定義、表示、プログラムでファイルが 分かれてる感じ のでプログラム各々がシンプルに、でもって 開発者とデザイナーで分業がしやすい
では、環境構築 サーバーには XAMPP を使います XAMPP だと環境の削除が楽 既に環境があればそちらでどうぞ Google で検索して各 OS 用のバイナリをイ ンストールしましょう 開発環境には Eclipse がオススメ Windows なら Pleiades の PHP パッケージを
ダウンロードしながら聞いてね
CakePHP の良い点.1 PHP4 系 5 系に対応 ファイルをアップロードするだけで OK コードの自動生成ができる MySQL, PostgreSQL, Oracle などなど様々な DB に対応している しかも SQLite を使えば DB のインストールすら 不要 ドキュメントがまとまってる
CakePHP の良い点.2 Ruby on Rails を真似てる ので CakePHP を覚えれば Rails に入りやすい もちろん Rails が使えるなら CakePHP もだいた い判るはず
CakePHP の良くない点 ちょっと重い WEB アプリケーションフレームワークなので 仕方ない 上位互換が気になる 1.1->1.2 の時に苦労した 既に 1.3β が存在する Rails と比べるとプラグインが少ない プラグイン管理システムが無いから? もしかしたら見つけられないだけかも
そろそろダウンロード終わった? ちょっと設定をします PHP にパスを通します コマンドラインで PHP を使う必要があるので
Xampp on Windows の場合 コマンドプロンプトで php –v が表示され れば OK 。でなければ下の設定を コントロールパネル → システム → 環境設 定 → 環境変数 → 【ユーザー名】の環境変 数「新規」 変数 PATH 値 C:\xampp\php ( XAMPP デフォルトインストールの場合) 田ミ +R 【ファイル名を指定して実行】 cmd[Enter]
データベースを設定 XAMPP なら Apache と MySQL を起動する 以下の URL にアクセス とりあえず今回の DB を作りましょう cake とでもしましょうか
つくるもの コメントを書ける一行掲示板風 記事が書ける 記事に対するコメントが書ける
テーブルを作る.1 ちなみにテーブルに必ず必要なのは id これは各データを示す一意の数字 あるといいもの created modified 自動的に登録日、更新日が投入されます
テーブルを作る.2 カラム名型 idInt(10),PK, AUTO_INCREMENT bodytext createddatetime modifieddatetime カラム名型 idInt(10), PK, AUTO_INCREMENT post_idInt(10) commenttext createddatetime modifieddatetime テーブル名: comments テーブル名: posts 1:n posts.id と comments.post_id で 結びつくよ
CakePHP の設置 CakePHP をダウンロードして展開 資料作成の時点では 1.2.5Stable が最新 C:/xampp/htdocs/cake にフォルダごと設置します アクセスしてエラーがいっぱい表示されたら 設置(だけは)完了
CakePHP の設定 DB の設定 C:\xampp\htdocs\cake\app\config\database.php.d efault これを C:\xampp\htdocs\cake\app\config\database.php にリネーム、テキストエディタで開いて DB 名、 ID 、 PASS を設定する 暗号化のキーを変更 C:\xampp\htdocs\cake\app\config\core.php Configure::write(‘Security.salt’, ’ ここ書き換え ’);
プログラムを書く 登録、編集、削除、一覧を毎回作るのっ てめんどくさい 自動生成しちゃおうぜ 田ミ +R → cmd [Enter] > cd C:¥xampp¥htdocs¥cake¥cake¥console > php -q cake.php bake
Cake を Bake する M → C → V の順に生成します [D]atabase Configuration データベース設定(既に設定済みなので利用しません) [M]odel テーブルの定義を生成します [V]iew HTML テンプレートを生成します [C]ontroller データ登録とか分岐とかを生成します [P]roject パスを設定します 使ったことがないので判りません [Q]uit 終了
モデルの作成 What would you like to Bake? (D/M/V/C/P/Q) M [Enter] Use Database Config: (default/test) [default] > [Enter] Possible Models based on your current database: 1. Comment 2. Post Enter a number from the list above, type in the name of another model, or 'q' to exit [q] >1 [Enter] … What would you like to Bake? (D/M/V/C/P/Q) M [Enter] [q] >2 [Enter] … こちらは下の表示の時に以下の様に Post hasMany Comment? (y/n) [y] >y[Enter] Post hasOne Comment? (y/n) [y] >n[Enter] 特に記載していない箇所は Enter (デフォルト)で OK
コントローラーの作成 What would you like to Bake? (D/M/V/C/P/Q) C [Enter] Possible Controllers based on your current database: 1. Comments 2. Posts Enter a number from the list above, type in the name of another controller, or ‘q' to exit [q] >1[Enter] … Would you like to include some basic class methods (index(), add(), view(), edit())? (y/n) [n] >y[Enter] Would you like to create the methods for admin routing? (y/n) [n] > y[Enter] … What would you like to Bake? (D/M/V/C/P/Q) C [Enter] [q] >2[Enter] … Would you like to include some basic class methods (index(), add(), view(), edit())? (y/n) [n] >y[Enter] Would you like to create the methods for admin routing? (y/n) [n] > y[Enter] … 特に記載していない箇所は Enter (デフォルト)で OK
ビューの作成 What would you like to Bake? (D/M/V/C/P/Q) V [Enter] Possible Controllers based on your current database: 1. Comments 2. Posts Enter a number from the list above, type in the name of another controller, or ' q' to exit [q] >1[Enter] Would you like to create some scaffolded views (index, add, view, edit) for this controller? NOTE: Before doing so, you'll need to create your controller and model classes ( including associated models). (y/n) [n] > y[Enter] Would you like to create the views for admin routing? (y/n) [y] > y[Enter] … What would you like to Bake? (D/M/V/C/P/Q) V [Enter] [q]>2[Enter] Would you like to create some scaffolded views (index, add, view, edit) for this controller? NOTE: Before doing so, you'll need to create your controller and model classes ( including associated models). (y/n) [n] > y[Enter] Would you like to create the views for admin routing? (y/n) [y] > y[Enter] … 特に記載していない箇所は Enter (デフォルト)で OK
ページが自動生成されました! 以下のアドレスにアクセス! しかも管理用のアドレスまでできてる C:¥xampp¥htdocs¥app¥webroot¥admin¥.htacces で BASIC 認証をかければ完璧
編集すべきファイル 生成したファイルは下のフォルダに有ります 各ファイルはテーブル名と結びついています C:¥xampp¥htdocs¥cake¥app¥controllers コントローラー 動作の変更 機能の追加、削除とかね C:¥xampp¥htdocs¥cake¥app¥models モデル テーブルの定義や関連づけを変更する C:¥xampp¥htdocs¥cake¥app¥views ビュー レイアウトの変更
ここから先は … 次回!