#freeze 閲覧総計:&counter(); (本日:&counter(today); 昨日:&counter(yesterday);) CakePHPへの入門の定番中の定番、CakePHP1.2公式マニュアルに掲載されている「ブロ グチュートリアル」をやってみた。 08/12/30 http://book.cakephp.org/ja/complete/219/CakePHPブログチュートリアル |&attachref(blog_index画面.JPG,zoom,200x200,button){新しい画像添付};|&attachref(blog_view画面.JPG,zoom,200x200,button){新しい画像添付};|&attachref(blog_edit画面.JPG,zoom,200x200,button){新しい画像添付};| 「ブログチュートリアル」はインターネット上に、ビデオ(全190分)と資料(全88ページ)で詳しく紹介され ている。このビデオと資料に従いやってみた。 ''1.ビデオは6つに別れており、どこで何の説明をしているのかわからなかったので、'' ''時間と対応資料ページを明記した。'' ''2.ビデオで説明されているが、資料ページがない情報を追記した。'' ●「ブログチュートリアル」を解説したビデオ 08/08/23 http://d.hatena.ne.jp/i_ogi/20080825/1219671190 ●上記ビデオに連動した資料(全88ページ) http://puyo2.upper.jp/cake/files/20080823cakephphandson_01.pdf ●「ブログチュートリアル」公式マニュアル http://book.cakephp.org/ja/complete/219/CakePHPブログチュートリアル (画面右下のオプションで「全てを1ページで」で表示したもの) &size(18){''【目次】''};(項目をクリックすると飛べます) #contents ~ *CakePHPハンズオン1 (概要) 25分 資料p.10-21 [#h16adeff] CakePHPの概要説明ですね。 00:00 p.10 CakePHPとは 04:30 p.15 機能の特徴 10:40 p.16 主な開発者 14:06 p.17 CakePHPの歴史 18:41 p.19 各国でのイベントも活発 23:39 p.21 CakePHPの気持ち *CakePHPハンズオン2 (インストール) 23分 資料p.22-31 [#ybc883c1] ブログチュートリアルの始まりです。 ↓ビデオのページ http://d.hatena.ne.jp/i_ogi/20080825/1219671190 00:00 p.24 今回の元ネタ 10.1 CakePHPブログチュートリアル http://book.cakephp.org/ja/complete/219/CakePHPブログチュートリアル 03:40 p.26 ダウンロード 10.1.1 Cakeをダウンロード http://book.cakephp.org/ja/complete/219/CakePHPブログチュートリアル#Cakeをダウンロード-329 04:30-06:40 【実演】Cakeのダウンロード 06:41 p.29 セットアップ 06:54-09:58 【実演・実習】セットアップ 09:58 p.30 CakePHPのディレクトリ構造 18:15 p.31 データベーステーブルの作成 10.1.2 ブログデータベースの作成 http://book.cakephp.org/ja/complete/219/CakePHPブログチュートリアル#ブログデータベースの作成-330 20:00-23:00 【実演】phpMyAdminを使ってのデータベーステーブルの作成 (はまりポイント)phpMyAdminの起動法がわからなかった。 答:http://localhost/phpmyadmin/index.php &color(crimson){23:00-25:30 (実習の為、画面変更なし、音声なし、2.5分間視聴不要部)}; |&attachref(phpMyAdminトップ画面.JPG,zoom,200x200,button){新しい画像添付};|&attachref(phpMyAdminクエリ実行.JPG,zoom,200x200,button){新しい画像添付};| *CakePHPハンズオン3 (初期設定) 40分 資料p.32-40 [#wd6db421] CakePHPの初期設定です。 ↓ビデオのページ http://d.hatena.ne.jp/i_ogi/20080825/1219671190 00:00 p.32 注意 01:00 p.33 設定ファイル(database.php)の作成 10.1.3 Cakeのデータベース設定 http://book.cakephp.org/ja/complete/219/CakePHPブログチュートリアル#Cakeのデータベース設定-331 (はまりポイント)database.php.defaultにはvar $default = array(の 下にvar $test = array(の設定も記述されているが、ここも編集の必要があるのか? 答:$testの所の編集は不要、var $test = array(全部を消去してもOK。 &color(crimson){10:00-13:36 実習の為、3.5分間視聴不要部}; 13:36 p.34 追加の設定(mod_rewriteを有効にする) &color(crimson){16:40-25:55 実習の為、10分間視聴不要部}; 25:55 p.37 mod_rewriteなしで動く設定(app/config/core.php) 10.1.5 mod_rewriteについて http://book.cakephp.org/ja/complete/219/CakePHPブログチュートリアル#mod_rewriteについて-333 29:00 p.34 Seculity.saltを変更(app/config/core.php) 10.1.4 追加の設定 http://book.cakephp.org/ja/complete/219/CakePHPブログチュートリアル#追加の設定-332 30:00 p.34 app/temを書き込み可能に 32:00 p.38 基本のコーディング作業 33:00 p.39 Controllerの作成 10.1.7 Postsコントローラの作成 http://book.cakephp.org/ja/complete/219/CakePHPブログチュートリアル#Postsコントローラの作成-335 &color(crimson){36:52-38:00 実習の為、1分間視聴不要部}; 38:00 p.39 scafofoldの説明のつづき *CakePHPハンズオン4 (Model〜View) 50分 資料p.41-51 [#d0425b01] ↓ビデオのページ http://d.hatena.ne.jp/i_ogi/20080825/1219671190 00:30 p.41 Modelの作成 10.1.6 Postモデルの作成 http://book.cakephp.org/ja/complete/219/CakePHPブログチュートリアル#Postモデルの作成-334 &color(crimson){04:15-05:15 実習の為、1分間視聴不要部}; 05:15 p.42 Controllerへのアクションの追加 10.1.7 Postsコントローラの作成 http://book.cakephp.org/ja/complete/219/CakePHPブログチュートリアル#Postsコントローラの作成-335 &attachref(scaffoldを消した時のエラー画面.JPG,zoom,200x200,button){新しい画像添付}; ↑scaffoldを消した時のエラー画面 /app/controller/posts_controller.php <?php class PostsController extends AppController { var $name = 'Posts'; //var $scaffold; //不要なので消す function index() { echo 'test'; exit; } } ?> http://localhost/cake/posts/ &attachref(posts_controller_test画面.JPG,zoom,200x200,button){新しい画像添付}; ↑index()が呼び出され、画面に「test」と表示された。 /app/controller/posts_controller.php <?php class PostsController extends AppController { var $name = 'Posts'; //var $scaffold; //不要なので消す function index() { echo 'test'; exit; } function hoge() { echo 'ほげー'; exit; } } ?> http://localhost/cake/posts/hoge &attachref(posts_controller_hoge画面.JPG,zoom,200x200,button){新しい画像添付}; ↑hoge()が呼び出され、画面に「ほげー」と表示された。 http://localhost/cake/prsts/ &attachref(posts_controller_find_all確認画面.JPG,zoom,200x200,button){新しい画像添付}; ↑画面最尾のクエリでSELECT文が動いている事が確認出来ればOK。 14:26 p.43 Viewの作成 19:30 p.45 Viewの作成2 10.1.8 Postビューの作成 http://book.cakephp.org/ja/complete/219/CakePHPブログチュートリアル#Postビューの作成-336 &color(crimson){20:10-26:30 実習の為、6.5分間視聴不要部}; 30:00 p.47 Controllerへのviewアクションの追加 10.1.8 Postビューの作成 http://book.cakephp.org/ja/complete/219/CakePHPブログチュートリアル#Postビューの作成-336 &color(crimson){34:50-35:30 実習の為、1分間視聴不要部}; 35:30 p.48 Viewの追加 view.ctp 38:30 p.50 Controllerへのaddアクションの追加(抜粋) 10.1.9 記事の追加 http://book.cakephp.org/ja/complete/219/CakePHPブログチュートリアル#記事の追加-337 40:30 p.51 Viewの追加 add.ctp ↓$this->dataの内容確認 /app/controllers/posts_controller.php <?php class PostsController extends AppController { function add() { var_dump($this->data); } } &attachref($this_dataの内容表示.JPG,zoom,200x200,button){新しい画像添付}; ↑view画面で入力したデータが$this->dataに入ってくる。 ↓$this->flash()の機能確認 /app/controllers/posts_controller.php <?php class PostsController extends AppController { function add() { $this->flash('ばいばい','/posts/'); } } &attachref(this_flash機能確認.JPG,zoom,200x200,button){新しい画像添付}; ↑flash画面にメッセージが表示され、次の画面へのリンクが貼られる。 &color(crimson){48:20-49:27 実習の為、1分間視聴不要部}; *CakePHPハンズオン5 (validate〜ルーティング) 27分 資料p.52-58 [#v26333ba] ↓ビデオのページ http://d.hatena.ne.jp/i_ogi/20080825/1219671190 00:00 p.52 validateの追加 post.php 10.1.10 データのバリデーション http://book.cakephp.org/ja/complete/219/CakePHPブログチュートリアル#データのバリデーション-338 &color(crimson){05:24-07:30 実習の為、2分間視聴不要部}; 09:30 p.54 Controllerへのdeleteアクションの追加(抜粋) 10.1.11 投稿記事の削除 http://book.cakephp.org/ja/complete/219/CakePHPブログチュートリアル#投稿記事の削除-339 12:40 p.56 Controllerへのeditアクションの追加(抜粋) 10.1.12 投稿記事の編集 http://book.cakephp.org/ja/complete/219/CakePHPブログチュートリアル#投稿記事の編集-340 ビデオでは資料p.56のコードと少し異なる形で解説 ↓/app/controllers/posts_controller.phpに追加するeditアクションのコード function edit($id = null) { $this->Post->id = $id; if (empty($this->data)) { $this->data = $this->Post->read(); } else { if ($this->Post->save($this->data['Post'])) { $this->flash('Your post has been updated.','/posts'); } } $this->render('add'); } &color(crimson){20:00-22:30 実習の為、2.5分間視聴不要部}; 23:00 資料なし ルーティング 10.1.13 ルーティング(Routes) http://book.cakephp.org/ja/view/341 ●ルートで表示されるページを変更する方法 /app/config/routes.php <変更前> 34: Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home')); <変更後> 34: Router::connect('/', array('controller' => 'posts', 'action' => 'index', 'home')); この変更によりhttp://localhost/posts/でindex画面が表示される様になる。 &attachref(,zoom,200x200,button){新しい画像添付}; 27:00 終了 *CakePHPハンズオン6 (各種Tips紹介) 23分 資料p.59-88 [#z70e83be] ↓ビデオのページ http://d.hatena.ne.jp/i_ogi/20080825/1219671190 00:00 p.59 CakePHPのさまざまな機能達 01:00 p.61 【いつでも使える機能】 01:00 p.62 デバッグ機能 05:39 p.63 コードシュガー 09:03 p.65 ログ機能 10:00 p.67 【Controllerで使える機能】 10:15 p.68 レイアウト変更 12:15 p.70 任意のモデルの利用 14:10 p.71 (割愛)セッション 14:30 p.72 【Modelで使える機能】 14:30 p.73 対象テーブル・主キーの指定 15:50 p.75 データ取得 17:05 p.78 【Viewで使える機能】 17:05 p.79 ヘルパー 18:15 p.82 【機能の利用方法の情報源】 公式マニュアル http://book.cakephp.org/ja/ APIドキュメント http://api.cakephp.org/classes.html |&attachref(CakePHP12公式マニュアルページ画面.JPG,zoom,200x200,button){新しい画像添付};|&attachref(CakePHP_APIdocument画面.JPG,zoom,200x200,button){新しい画像添付};| 21:00 p.84 【チュートリアルを拡張してみる】 21:45 p.86 【まとめ】 09/01/25 count 34 #comment_nospam #vote(参考になった[1],ふつう[0],参考にならなかった[0])