- SlideBoom

2009/10/04
[email protected]
CAKEPHP勉強会
〜CAKEを焼いてみよう!〜
CakePHPとは
 PHPで書かれたWEBアプリケーションフ
レームワーク
 オブジェクト指向
 MVC(Model, View, Controller)
 データ定義、表示、プログラムでファイルが
分かれてる感じ
 のでプログラム各々がシンプルに、でもって
開発者とデザイナーで分業がしやすい
では、環境構築
 サーバーにはXAMPPを使います
 http://www.apachefriends.org/jp
 XAMPPだと環境の削除が楽
 既に環境があればそちらでどうぞ
 Googleで検索して各OS用のバイナリをイ
ンストールしましょう
 開発環境にはEclipseがオススメ
 WindowsならPleiadesのPHPパッケージを
 http://mergedoc.sourceforge.jp/
ダウンロードしながら聞いてね
CakePHPの良い点.1
 PHP4系5系に対応
 ファイルをアップロードするだけでOK
 コードの自動生成ができる
 MySQL, PostgreSQL, Oracleなどなど様々な
DBに対応している
 しかもSQLiteを使えばDBのインストールすら
不要
 ドキュメントがまとまってる
 http://book.cakephp.org/ja/
CakePHPの良い点.2
 Ruby on Railsを真似てる
 のでCakePHPを覚えれば Rails に入りやすい
 もちろん Rails が使えるならCakePHPもだいた
い判るはず
CakePHPの良くない点
 ちょっと重い
 WEBアプリケーションフレームワークなので
仕方ない
 上位互換が気になる
 1.1->1.2の時に苦労した
 既に1.3βが存在する
 Railsと比べるとプラグインが少ない
 プラグイン管理システムが無いから?
 もしかしたら見つけられないだけかも
そろそろダウンロード終わった?
 ちょっと設定をします
 PHPにパスを通します
 コマンドラインでPHPを使う必要があるので
Xampp on Windows の場合
田ミ+R
【ファイル名を指定して実行】
cmd[Enter]
 コマンドプロンプトで php –v が表示され
ればOK。でなければ下の設定を
 コントロールパネル→システム→環境設
定→環境変数→【ユーザー名】の環境変
数「新規」
 変数
 PATH
 値
 C:\xampp\php
 (XAMPPデフォルトインストールの場合)
データベースを設定
 XAMPPなら
 ApacheとMySQLを起動する
 以下のURLにアクセス
 http://localhost/phpmyadmin/
 とりあえず今回のDBを作りましょう
 cake とでもしましょうか
つくるもの
 コメントを書ける一行掲示板風
 記事が書ける
 記事に対するコメントが書ける
テーブルを作る.1
 ちなみにテーブルに必ず必要なのは
 id
 これは各データを示す一意の数字
 あるといいもの
 created
 modified
 自動的に登録日、更新日が投入されます
テーブルを作る.2
テーブル名:posts
カラム名
型
id
Int(10),PK, AUTO_INCREMENT
body
text
created
datetime
modified
datetime
テーブル名:comments
カラム名
型
id
Int(10), PK, AUTO_INCREMENT
post_id
Int(10)
comment
text
created
datetime
modified
datetime
1:n
posts.idとcomments.post_idで
結びつくよ
CakePHPの設置
 CakePHPをダウンロードして展開
 http://cakephp.org/
 資料作成の時点では1.2.5Stableが最新
 C:/xampp/htdocs/cake
 にフォルダごと設置します
 http://localhost/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
ページが自動生成されました!
 以下のアドレスにアクセス!
 http://localhost/cake/posts/
 http://localhost/cake/comments/
 しかも管理用のアドレスまでできてる
 http://localhost/cake/admin/posts/
 http://localhost/cake/admin/comments/
 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
 ビュー
 レイアウトの変更
ここから先は…
 次回!