閲覧総計:4485 (本日:1 昨日:0)
CakePHPへの入門の定番中の定番、CakePHP1.2公式マニュアルに掲載されている「ブロ
グチュートリアル」をやってみた。 08/12/30
「ブログチュートリアル」はインターネット上に、ビデオと資料で詳しく紹介され
ている。このビデオと資料に従いやってみた。
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ページで」で表示したもの)
【目次】(項目をクリックすると飛べます)
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の気持ち
ブログチュートリアルの始まりです。
↓ビデオのページ
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
23:00-25:30 (実習の為、画面変更なし、音声なし、2.5分間視聴不要部)
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。
10:00-13:36 実習の為、3.5分間視聴不要部
13:36 p.34 追加の設定(mod_rewriteを有効にする)
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
36:52-38:00 実習の為、1分間視聴不要部
38:00 p.39 scafofoldの説明のつづき
↓ビデオのページ
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
04:15-05:15 実習の為、1分間視聴不要部
05:15 p.42 Controllerへのアクションの追加
10.1.7 Postsコントローラの作成 http://book.cakephp.org/ja/complete/219/CakePHPブログチュートリアル#Postsコントローラの作成-335
↑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/
↑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
↑hoge()が呼び出され、画面に「ほげー」と表示された。
http://localhost/cake/prsts/
↑画面最尾のクエリで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
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
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); } }
↑view画面で入力したデータが$this->dataに入ってくる。
↓$this->flash()の機能確認
/app/controllers/posts_controller.php
<?php class PostsController extends AppController { function add() { $this->flash('ばいばい','/posts/'); } }
↑flash画面にメッセージが表示され、次の画面へのリンクが貼られる。
48:20-49:27 実習の為、1分間視聴不要部
↓ビデオのページ
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
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'); }
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画面が表示される様になる。
↓ビデオのページ
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
21:00 p.84 【チュートリアルを拡張してみる】
21:45 p.86 【まとめ】