Day3 Day4 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
Day3 第1回の宿題の発表 前回のおさらい CakePHPについて 最近のWebアプリケーションの開発方法 Webアプリケーションフレームワーク(以下Webフレームワーク)とは Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
第1回宿題発表 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
第1回宿題 複数のテーブルに対するSQL言語の演習(ものまね)を行ってください 複数のテーブルを使ったWebアプリケーションをペアで作成してください Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
前回おさらい Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
前回のおさらい WebとWebアプリケーション HTML PHP データベースとSQL Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
World Wide Webとは ブラウザから「http://www.~」と入力することでいろいろなWebページを見せているしくみ。 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
Webページの表示の仕組み 1 “http://www.yahoo.co.jp/index.html”で 指定されるファイルをリクエスト 2 “index.html”ファイルを レスポンスとして返す 3 “index.html”ファイルを 整形(レンダリング)して 表示 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
HTML Webページを作成するためのマークアップ言語。 index.htmlはHTMLで書かれたテキストファイル。 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
Webアプリケーションとは (Webページをただ表示するだけでない)Webの機能や特徴を利用したアプリケーション。 例えば、、、 データを登録していつでも参照できるようにできる。 Blog ログイン機能を持たせて会員しか表示しないようにする。 SNS Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
Webアプリケーションの 処理の仕組み 1 “http://www.yahoo.co.jp/index.php”の ページ内容をリクエスト リクエストを元に処理をする (データの登録、編集、閲覧、削除) Webサーバ 2 処理の結果をindex.phpとして レスポンスとして返す “index.php”ファイルを 整形(レンダリング)して 表示 3 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
PHP Webアプリケーションの処理の部分を書くことができるプログラム言語の1つ。 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
Webアプリケーションを作成するには リクエストとレンダリングはブラウザが担当します。 レスポンスはWebサーバが担当します。 リクエストとレンダリングはブラウザが担当します。 レスポンスはWebサーバが担当します。 処理をプログラムとして書く必要があります。 今回は プログラミング言語としてPHPを選択し、 実際にWebアプリケーションを作成しています。 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
データベースmydbの中のテーブルbooksの中からカラムisbnが98284795825のデータを取得せよ。 データを保存するには データベースサーバと呼ばれるデータを格納することに特化したシステムを使用します。 今回はMySQLを使用しています。 データベースサーバを管理するデータベース管理システム(DBMS)へ命令するための言語がSQLです。 データベースサーバ データベースmydbの中のテーブルbooksの中からカラムisbnが98284795825のデータを取得せよ。 DBMS SQL データベース Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
CakePHPについて Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
CakePHPとは CakePHPとはPHPで書かれたWebフレームワークです。 CakePHPのようなWebフレームワークを使いこなせると、より高速に、より直感的に、より抽象的に、Webアプリケーションの開発ができます。 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
ハンズオン 「実際にCakePHPでブログを作成してみましょう」 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
CakePHPチュートリアル The Cookbookにあるブログチュートリアルをbakeを使用して実際にこなしてみる。 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
ブログシステム仕様 [10.1] エントリーを投稿できて(Create)表示できて(Read)編集できて(Update)削除できる(Delete)システム。 使用言語:PHP フレームワーク:CakePHP データベースサーバ:MySQL Webサーバ:Apache Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
Cakeをダウンロード[10.1.1] あらかじめ各アカウントのディレクトリにファイルは展開してあります。 WinSCPで実際にディレクトリが作成されているか確認してください。 以下のURLにアクセスしてみましょう。 http://rd.lib.kyushu-u.ac.jp/~アカウント/cakephp/ Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
自分のアカウント名でデータベースを作成します。 チュートリアルと同じテーブルとデータを作成/登録します。 ブログデータベースの作成[10.1.2] 自分のアカウント名でデータベースを作成します。 チュートリアルと同じテーブルとデータを作成/登録します。 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
Cakeのデータベース設定[10.1.3] チュートリアルにしたがって設定してみましょう。 再度ブラウザで見てみましょう。 http://rd.lib.kyushu-u.ac.jp/~アカウント/cakephp/ Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
追加の設定[10.1.4] チュートリアルにしたがって設定してみましょう。 再度ブラウザで見てみましょう。 http://rd.lib.kyushu-u.ac.jp/~アカウント/cakephp/ オールグリーンになっていたら成功です。 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
Bakeでコードを生成する[9.1] ここからチュートリアルから離れて一気に進みます。 PuTTYで接続しcake/console/ディレクトリまで移動してください。 MCVの順でソースコードを生成して行きます。 再度ブラウザで見てみましょう。 http://rd.lib.kyushu-u.ac.jp/~アカウント/cakephp/posts/ Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
Coffee Break Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
Coffee Break:プログラマの特性 プログラマは大抵面倒くさがり。 開発中、同じコードを何度も書きたくない。 (さらに)開発中、同じようなコードを何度も書きたくない。 (それどころか)同じようなコードは一生書きたくない。 面白そうなコードだけ書いて暮らしたい! Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
Coffee Break:プログラマの特性 じゃあどうする? 小さな同じ処理は関数化してしまおう。 同じ処理は書かない。 わかりやすいように、意味的に近い処理をグループ化してしまおう(文字に関する関数(メソッド)群、○○を処理するための関数と変数(プロパティ)群)。 ひとくくりにして意味的にもわかりやすく。呼び出しも楽に。 同じような処理も大体同じなのだから全体を継承して違う部分だけ上書きしよう。 同じようなコードも書かない。 構造化プログラミングやオブジェクト指向プログラミングが誕生する理由 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
CakePHPについて(続き) Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
Webアプリケーションの特徴 データを登録して(Create) データを参照して(Read) データを編集して(Update) データを削除して(Delete) どんなアプリケーションも大抵こればかり Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
Webアプリケーションの特徴 他には、、、 データベースに接続して SQLでデータベースを操作して HTMLを生成して 画像を表示して formがあってデータを入力させて どんなアプリケーションも大抵こればかり Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
最近のWebアプリケーション開発 「データベースに対するCRUD」の特性に収まりやすいWebアプリケーションの特徴 汎用的な処理はまとめてずっと使いたい コーディングのルールに一定の制約を持たせて連携開発をしやすくしたい Webフレームワークを 使用して開発するのが主流 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
Webフレームワーク Webアプリケーション開発をサポートするための枠組み(プログラム) データベースの操作 汎用的処理のライブラリ HTMLページのテンプレート セッション管理 セキュリティ etc. Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
Webフレームワーク PHP Ruby Perl Java CakePHP、Zend Framework、symfony Ruby on Rails Perl Catalyst、Sledge、Jifty、Mojo Java SAStruts、Seasar、Spring、Grails Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
CakePHP CakePHP enables PHP users at all levels to rapidly develop robust web applications. 最近のWebフレームワークの先駆けであるRuby on Railsの影響を多分に受けている。 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
Day4 CakePHPを利用するにあたっての有用な情報源 MVCの概念 ブログチュートリアル Webアプリケーションの作成 the cookbookの紹介と日本人翻訳チームの貢献について CakePHP User Forumの紹介 MVCの概念 Webアプリケーションにおけるデータの流れ。(MVC) モデルという考え方とデータベースのテーブル(MC) 処理と表示をわけることの大切さ。楽さ。(VC) ブログチュートリアル ソースレビュー bakeだけでWebアプリケーションを作成(演習) リレーションの大切さを理解する debuglibによるデータ構造の理解(演習) Webアプリケーションの作成 さらに機能を追加してみる(演習) Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
CakePHPを利用するにあたっての有用な情報源 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
CakePHPのマニュアルサイト/システム The Cookbook http://book.cakephp.org/ja/ CakePHPのマニュアルサイト/システム マニュアルサイトであると同時にマニュアル作成システム+多言語翻訳システムでもあります。 日本語翻訳チームの貢献が全世界で1位! Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
CakePHP Users in Japan http://cakephp.jp/modules/newbb/ フォーラムの交流も非常に活発です。 検索すれば大抵の問題は解消します。 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
MVCの概念 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
MVCの概念 MVCとはModel、View、Controllerの頭文字をとったもの。 CRUDとは別の切り口でWebアプリケーションを表している データを操作し(Model) ユーザの入力に応答し、処理をし(Controller) 表示し、ユーザの入力を受け取る(View) Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
MVCの概念 V C M データベース どんな画面を表示するか。 受け取った入力からどんな処理をするか。 どのようにデータを処理するか。 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
MVCの概念(例:Blog) V C M データベース Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
MVCの概念(例:Blog) V C M データベース アクセス Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
MVCの概念(例:Blog) V C M データベース 呼び出し Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
MVCの概念(例:Blog) V C M データ 取得 データベース Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
MVCの概念(例:Blog) V C M データベース データ 渡し Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
MVCの概念(例:Blog) V C M データベース データ 渡し Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
MVCの概念(例:Blog) V C M データベース 表示 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
MVCの概念(例:Blog) V C M データベース 入力 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
MVCの概念(例:Blog) V C M データベース データ 渡し Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
MVCの概念(例:Blog) V C M データベース 処理 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
MVCの概念(例:Blog) V C M データベース 呼び出し Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
MVCの概念(例:Blog) V C M 処理 データベース Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
MVCの概念(例:Blog) V C M データ 登録/取得 データベース Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
MVCの概念(例:Blog) V C M データベース データ 渡し Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
MVCの概念(例:Blog) V C M データベース データ 渡し Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
MVCの概念(例:Blog) V C M データベース 表示 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
Modelとデータベーステーブル Modelはひとくくりのデータ群を扱うための処理のくくり。 データベースの1つテーブルは大抵ひとくくりのデータ群。 例外もあります。 2つのテーブルでひとくくりのデータ群に扱えるものもあるし、1つのテーブルで複数のデータ群になることもあります。 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
Modelとデータベーステーブル M M M Postモデル Categoryモデル Userモデル postsテーブル categoriesテーブル usersテーブル Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
ロジック(処理)とビュー(表示) データの処理は主にPHP、データの表示は主にHTML。 処理のコーディングのときはできるだけ処理のことだけ考えていたいはず。 HTMLタグやCSSのことは頭から離したい。 表示のコーディングのときはできるだけ表示のことだけ考えていたいはず。 データベースへの接続や操作などは頭から離したい。 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
<h1>タイトル</h1> ロジック(処理)とビュー(表示) HTMLヘッダー データベース接続 <h1>タイトル</h1> データ取得 データ加工 データ表示処理 </html> Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
<h1>タイトル</h1> ロジック(処理)とビュー(表示) HTMLヘッダー データベース接続 <h1>タイトル</h1> データ取得 データ表示処理 データ加工 </html> データセット Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
<h1>タイトル</h1> MVC HTMLヘッダー データベース接続 <h1>タイトル</h1> Model呼び出し データ取得 データ表示処理 データセット データ加工 </html> V C M Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
ソースレビュー Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
ソースレビュー Day3で実際に生成したソースをレビューします。 app/models/post.php app/controllers/posts_controller.php app/views/posts/*.ctp cake/lib/views/layouts/default.ctp The cookbookとの対応もここで教える(+できればpptも作成) Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
CakePHPのMVC(posts/index) データベース Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
CakePHPのMVC(posts/index) cake/lib/views /layouts/default.ctp V C M データベース app/views/index.ctp app/controllers /posts_controller.php app/models /post.php Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
ブログチュートリアル+ Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
bakeを使ってDay3で作成したブログシステムをさらにバージョンアップさせます。 投稿エントリーにカテゴリという属性をつけてみましょう。 ブログシステムのバージョンアップ bakeを使ってDay3で作成したブログシステムをさらにバージョンアップさせます。 投稿エントリーにカテゴリという属性をつけてみましょう。 投稿エントリーに投稿ユーザという属性をつけてみましょう。 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
Modelとデータベーステーブル M M M Postモデル Categoryモデル Userモデル postsテーブル categoriesテーブル usersテーブル Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
Modelとデータベーステーブル postsテーブル categoriesテーブル usersテーブル id title body cotegory_id user_id postsテーブル id title id name categoriesテーブル usersテーブル Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
debuglib.phpによるデータ構造の理解 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
debuglib.php phpの配列構造を分かりやすく表示するためのライブラリ http://www.atomar.de/debuglib/ print_a()という関数が使えるようになる。 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
debuglibの設定 debuglib.phpをダウンロードして以下のディレクトリに設置 app/vendors/debuglib.php app/config/bootstrap.phpに以下の設定を追記。 App::import('Vendor','debuglib'); 何でもいいので配列を出力してみましょう。 print_a($array); Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
ハンズオン さらにバージョンアップするための演習 今まで作成したBlogをさらにバージョンアップさせてください。 bakeを使ってでもいいですし、直に書き加えても構いません。 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.
宿題(案) CakePHPでアプリケーションを作成しましょう。 Day3 Day4 Copyright (c) 2009 Fusic Co.,Ltd.