オープンソース徹底活用 CakePHP 2.1による Webアプリケーション開発

概 要

PHPの開発用フレームワーク「CakePHP 2.1」を使ったWebアプリケーション開発のガイドブックです。Webの世界は日々進化し複雑化しているため、一から本格的なWebアプリケーションを構築しようとすれば膨大な作業となり、Webの進化についていくことができません。そこで役立つのがWebアプリケーションの仕組みを丸ごと実現してくれるフレームワークです。本書ではPHPのフレームワークであるCakePHPを使ってWebアプリケーションを開発するための手順を基礎から解説します。CakePHP 2.xは大幅な改良がされておりCakePHP 1.3のコードはそのままでは動きません。実業務ではまだCakePHP 1.3が主流ですが、CakePHP 2.xへの移行準備も始めましょう。

著者 掌田津耶乃
価格 本体3000円(税別)
ISBN 978-4-7980-3418-8
発売日 2012/6/30
判型 B5変
色数 1色
ページ数 544
CD/DVD
対象読者 中級
シリーズ オープンソース徹底活用
表紙イメージ
購入 アマゾンで購入する
楽天で購入する

※リンク先によっては、販売ページが用意されていないことがあります。あらかじめご了承ください。

新しいウィンドウで開く 書籍購入のご案内

サポート

サポート情報は以下からご参照下さい。

サポート情報へのリンク

目次

CakePHP 2.1から始める方へ(1.3から2.1への変更点)

Chapter 1 フレームワークとCakePHP

1-1 フレームワークとCakePHP

ちゃんと開発できてますか?

PHP開発とフレームワーク

CakePHPとは?

1-2 CakePHPの入手とインストール

サーバ環境とPHPについて

XAMPPの入手とインストール

XAMPP Control Panelについて

設定ファイルの修正

CakePHPのダウンロード

CakePHPの構成

CakePHPを公開ディレクトリに配置する

mod_rewriteとサーバ設定について

デフォルトページはどこにある?

開発環境で利用するには?

Mac OS Xユーザの皆さんへ

Chapter 2 コントローラとビュー

2-1 シンプルなWebアプリケーション開発

MVCの役割

MVCと命名規則

もっともシンプルなWebアプリケーション

コントローラを書いてみる

メンバ変数とindexメソッド

アクセス修飾子について

index以外へのアクセス

アクションの移動について

ビューテンプレートを作る

ビューテンプレートの仕組み

レイアウトの使用

アクションごとにレイアウト動作を変える

レイアウトを作成する

レイアウトの流れ

テーマについて

2-2 フォームの利用

フォームの作成

フォーム送信ページを作る

送信情報を管理する$this->request->query

request配列について

送信テキストのエスケープ処理

その他のフォーム項目について

POSTによる送信

2-3 Formヘルパーによるフォームの生成

Formヘルパー(Form Helper)を利用する

コントローラを修正する

Formヘルパーで生成されたコード

チェックボックスの生成

ラベルの生成

ラジオボタンの生成

選択リストの生成

フォームの値をビュー内で使用する場合

その他のフォーム生成メソッド

日時の入力フォーム生成

Chapter 3 データベースとモデル

3-1 データベース利用の基本

なぜモデルがあるのか?

CakePHPのデータベース関連ファイル

テーブルの基本設計

MVCの命名規則を整理する

SQLiteManagerを用意する

SQLiteでデータベースを用意する

テーブルを作成する

データベース設定ファイルの作成

モデルの作成

コントローラの作成

ビューの作成

HTMLヘルパーを利用する

MySQLにテーブルを用意する

SQLコマンドでデータベースを作成する

データベース設定の修正

scaffoldによる高速開発

scaffoldとアクションメソッドの併用

3-2 データベースの基本的な操作

レコードを追加する

コントローラの修正

レコードの検索

レコードを検索するfindメソッドの使い方

first、list、countの違い

演算子を指定する

conditionsの秘密

マジック検索の活用

レコードの削除

レコードを更新するsave

3-3 モデル・クラスの拡張

モデルのメンバ変数について

コールバック・メソッドについて

3-4 バリデーションの利用

バリデートの基本と実習

validateのルール

より複雑なバリデーション

独自ルールの作成

3-5 複数テーブルの連携

2つのテーブルを連携する

CakePHPのLEFT JOIN

hasOneによるLEFT JOIN

belongsToによるLEFT JOIN

hasManyによる1対多結合

ダイナミックなバインド

3-6 掲示板システムの作成

scaffoldでユーザ管理ツールを作る

モデルの作成

indexの作成

addアクションの作成

showの作成

show2の作成

editの作成

Chapter 4 開発を支援するさまざまな機能

4-1 bakeによる高速開発

bakeとは何か?

テーブルを作成する

bakeを起動する

データベース設定を作成する

モデルの生成

コントローラの作成

Viewの作成

bakeで作られたWebアプリケーションを使う

生成されたモデルを確認する

コントローラを確認する

ビューを確認する

4-2 テスト環境

ユニットテストとは

ユニットテストを導入する

テストの実行

自動生成されたテスト

bakeでテストファイルを生成する

テスト用プログラムについて

Fixtureスクリプトについて

Fixtureクラスの構成

モデル用のCaseスクリプトの働き

モデルのテスト用クラス

テスト用メソッドを実装する

コントローラ用のテストクラス

コントローラ用テストのソースコードを理解する

テストケースを作成する

値をチェックするためのメソッド

テストとケースの前後処理

4-3 ローカライゼーション

CakePHPの翻訳機能について

i18nコンソールでリソースファイルを作る

生成されたリソースファイル

各国語のリソースファイルを用意する

Chapter 5 ヘルパーの活用

5-1 HTMLヘルパー

HTMLヘルパーとは?

ヘッダー関係のメソッド

イメージタグの出力

リンクの出力

<p>タグの出力

<div>タグの出力

テーブル関係のタグの出力

従来方式のテーブルとの比較

リスト表示タグの生成

ナビゲート・メニューの作成

一般的なタグの出力

5-2 ページネーション

ページネーションとは?

ページネーションの設定

ページネーションによる検索

ビューテンプレートでのPaginatorヘルパー

ページ移動のリンクを生成する

ページ移動のリンクを作成する

ページ番号による表示を作成する

ソート機能の実装

5-3 Jsヘルパー

Jsヘルパーについて

jQueryのインストール

JavaScriptのスクリプトを出力する

イベントの組み込み

eventメソッドの利用

スクリプトの流れを整理する

jQuery利用のコードをチェックする

複数のイベントを設定する

writeBufferの働き

JSONによるオブジェクトのやり取り

5-4 JsヘルパーとAjax

Ajaxによる非同期通信の利用

requestで非同期通信を行う

非同期通信のスクリプトの出力

サーバに必要な値を送信する

Ajaxでフォームを送信して処理する

Ajax通信を行うリンクの生成

5-5 JsヘルパーとjQueryを使いこなす

JsBaseEngineとJqueryEngine

Alert/Confirmを表示する

prototypeに変更する

視覚効果の設定:effectメソッド

jQuery UIを使う

ドラッグ可能エレメントの作成

ドロップ可能なオブジェクトの作成

ドラッグ可能リストの作成:sortableメソッド

スライダーの作成:sliderメソッド

eachによる全オブジェクト処理

スクリプトバッファの仕組み

5-6 その他のヘルパーについて

Textヘルパーについて

Numberヘルパーについて

Timeヘルパーについて

Sessionヘルパー

RSSヘルパー

BoardsのindexにRSSをつける

レイアウトの用意

RSS用のビューを作成する

RSS情報生成の仕組み

Chapter 6 コンポーネントとビヘイビア

6-1 認証コンポーネント

コンポーネントと認証について

USERSテーブルの作成

Security.saltの変更

Usersコントローラの作成

ビューの作成

Boardsコントローラの修正

ユーザ登録ページのビューを作る

登録のアクションメソッドを作る

認証を使わないページを登録する

UserModelを用意する

ログイン処理を再考する

ログアウトの作成

テーブルの内容をチェックする

エラーメッセージをカスタマイズする

使用テーブルをカスタマイズする

ログイン・ログアウトの表示

ログインしたユーザの情報

認証時の処理の追加

6-2 アクセス制御リスト

アクセス制御リストとは?

ACL用データベースの準備

テーブルを確認する

ARO情報を作成する

ACO情報を作成する

パーミッションの作成

追加されたレコードを確認する

Boardsコントローラにアクセス権を設定する

6-3 その他の主なコンポーネント

Sessionコンポーネントについて

Cookieコンポーネントについて

EmailコンポーネントとCakeEmail

Securityコンポーネントについて

RequestHandlerコンポーネントについて

6-4 ビヘイビアの利用

ビヘイビアとは?

Aclビヘイビアについて

Treeビヘイビアについて

Containableビヘイビアについて

Translateビヘイビアについて

Boardの投稿を多言語対応にする

Chapter 7 CakePHPの拡張

7-1 ヘルパー・コンポーネント・ビヘイビアの作成

ヘルパーの設計

RGBテキスト生成ヘルパーを作る

RgbTextHelperを利用する

ヘルパー内から他のヘルパーを利用する

エレメントの設計

エレメントへの値の受け渡し

コンポーネントの設計

コンポーネントからコントローラやモデルを使う

ビヘイビアの設計

マジックメソッドの作成

7-2 プラグインによる拡張

プラグインの設計

個人情報管理プラグインの作成

AppコントローラとAppモデルの作成

コントローラとモデルの作成

プラグイン・コンポーネントの作成

コンポーネント・ヘルパーの作成

ビヘイビアの作成

PR

秀和システム