|
|
Cakephp勉強会 〜CAKEを焼いてみよう!〜 2009/10/04 kenji0302@gmail.com
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 の場合 コマンドプロンプトで php –v が表示されればOK。でなければ下の設定を コントロールパネル→システム→環境設定→環境変数→【ユーザー名】の環境変数「新規」 変数 PATH 値 C:\xampp\php (XAMPPデフォルトインストールの場合) 田ミ+R 【ファイル名を指定して実行】 cmd[Enter]
データベースを設定 XAMPPなら ApacheとMySQLを起動する 以下のURLにアクセス http://localhost/phpmyadmin/ とりあえず今回のDBを作りましょう cake とでもしましょうか
つくるもの コメントを書ける一行掲示板風 記事が書ける 記事に対するコメントが書ける
テーブルを作る.1 ちなみにテーブルに必ず必要なのは id これは各データを示す一意の数字 あるといいもの created modified 自動的に登録日、更新日が投入されます
テーブルを作る.2 テーブル名:comments テーブル名:posts 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.default これを 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 ビュー レイアウトの変更
ここから先は… 次回!
No comments posted yet
Comments