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 ビュー レイアウトの変更 ここから先は… 次回!
© Copyright 2024 ExpyDoc