CakePHPの入門書「Fast CakePHP」を書きました!
CakePHPの本「Fast CakePHP (技術評論社)」を書きました!本日より全国発売です!
技術評論社 (2008/01/09)
Fast CakePHPはどんな内容?
この「Fast CakePHP」は、技術評論社の人気シリーズ「LLフレームワークBooks」の第四弾にあたる本で、CakePHPとPHPの入門書という位置づけになっています。CakePHPのバージョンは1.1系を対象としています。PHPの入門書も兼ねているので、環境の準備もPHP部分も含めると、CakePHP半分・PHP半分、という構成になっています。書き下ろしがほとんどで、ウェブ連載記事の内容も含まれています。
特にこだわったのは「つまずかずにCakePHPを始められること」と「どういうフレームワークなのかを俯瞰(ふかん)できること」でした。フレームワークというものは、どのフレームワークを選ぶかで悩み、そしてどんな簡単なものでも一度始めたらそれなりの労力が必要です。そんな苦労をなるべく抑えるべく、具体的には「コラム部の文章をブログちっくに」「離陸までの解説とチュートリアルの詳細度を、必要最小限に」してみました。
そのため、既にCakePHPをプロダクトで使用してコアのソースコードまで読んでいる人にとっては、参考書としては物足りなさを感じるかもしれません。参考書としても完ぺきに使えるようになれば最高でしたが、実力不足からかどうしても相容ることが出来ませんでした。ただそういった人でも、この本のコラム部分を読み込んでおくと他人にCakePHPを勧めるときに良さをうまく説明できるかもしれません。説明した相手がその気になったときには、この本自体を渡して頂ければ幸いです。使う人が増えるほど、フレームワークの価値は増大すると思っています。
中身の雰囲気は書籍案内:Fast CakePHP|gihyo.jp … 技術評論社ページの「サンプルPDFファイル(PDF 177KB)」から掴めるかと思います。
Fast CakePHP 目次
以下は、Fast CakePHPの目次です。
Chapter 1 CakePHPってなに?
- 1-1 CakePHPとは
- 1-2 CakePHPを使いたくなる5つの特徴
- 1-3 CakePHPのフレームワークとしての機能
Chapter 2 CakePHPを使いこなすための基礎知識
- 2-1 PHPとは?
- 2-2 PHPプログラミングの基礎
- 2-3 フレームワークを使うことについて
- 2-4 MVCモデルとは
Chapter 3 CakePHPの開発環境を整える
# 3-1 開発環境のインストール:CentOS 4/Linux編
- yumレポジトリを使ったインストール
- PHP 5をインストールする
# 3-2 開発環境のインストール:Windows編
- XAMPP for Windowsとは
- XAMPPによる開発環境のインストール
# 3-3 CakePHPのセットアップ
- CakePHPの入手
- パッケージの展開と設置
- CakePHPのインストール CentOS4/Linux編
- CakePHPのインストール Windows編
Chapter 4 入門 CakePHP
# 4-1 CakePHPの特徴
- CakePHPの特徴のおさらい
# 4-2 CakePHPの構造
- CakePHPファイル配置の概要
- CakePHPフレームワークの処理の流れ
# 4-3 モデル
- モデルの概要
- モデルのAPI
# 4-4 アソシエーション(関連)
- アソシエーションのbefore after
- hasOne
- belongsTo
- hasMany
- hasAndBelongsToMany
# 4-5 コントローラ
- コントローラの概要
- コントローラの変数
- コントローラのAPI
# 4-6 ビュー
- コントローラ・アクションに対応するビュー
- レイアウト
- エレメント
- コンポーネント
# 4-7 ヘルパー
- ヘルパーの概要
- ヘルパーの読み込み
- HTMLヘルパー
- JavaScriptヘルパー
# 4-8 CakePHPのグローバル定数とグローバル関数
- グローバル関数
- 定数
# 4-9 その他の機能
- データバリデーション
- Scaffolding
- ビューのキャッシュ
# 4-10 CakePHPの規約
- ファイル名の規約
- モデルの規約
- コントローラの規約
- ビューの規約
Chapter 5 作ってみようCakePHPアプリケーション
# 5-1 ToDo管理アプリケーションを開発する
- ToDo管理アプリケーションの仕様
- CakePHPを設置する
- ToDoデータベースの作成
- tasksテーブルの解説
- Tasksコントローラの作成
- Tasksビューの作成
- タスクの編集機能を追加する
- 修正内容の解説:コントローラ編
- 修正内容の解説:ビュー編
- タスクの追加をAjax化する
Appendix CakePHPの情報源
- A-1 国内サイト
- A-2 海外サイト
この本を書くことになったきっかけ
「本って、どんなきっかけで書くことになるの?」というのは、多くの人の疑問ではないでしょうか。僕もこの本を書くまで、ずっと気になって仕方がありませんでした。以前の共著では、著者の方に誘われた形でちょこっとだけ参加したので、疑問はそれほど解消しませんでした。
ひとつの例として、この本を書くことになったきっかけを紹介いたします。
技術評論社さんとの出会いはけんすうの紹介で
友達のけんすう(ロケスタ社長日記)から、技術評論社の馮さん(Web Site Expert編集長)との打ち上げ飲み会に誘われたのが始まりでした。その頃、ネット界隈ではCakePHPのクオリティの高いプレゼン資料や5分でシリーズなどが相次いで公開されていました。僕自身も、個人でも仕事でもCakePHPをバリバリ使い始めていました。そしてその飲み会ではウェブ・技術・プログラミング・CakePHPはすごい、的な話をした記憶があります。
その後もう一度馮さんとお会いして、お仕事についてのお話と、CakePHPについてのお話をしました。最初に頂いたお仕事はWeb Site expert #12の、はてブTVの記事原稿でした。CakePHPについては書籍を出す前提で、まずはウェブで連載記事のお仕事を頂きました。本ブログでも何度か紹介している「連載:CakePHPで高速Webアプリ開発|gihyo.jp … 技術評論社」です。ウェブ原稿は初めてでしたが、初回の記事に沢山のブックマークがついて本当に嬉しかったです。
そして連載が8回目となったところで、本格的に書籍の執筆に取りかかりました。12月初旬に校了し、本日2008年1月9日に全国発売となりました。ちなみに実は、昨年末の時点で一部の店舗でテスト販売も行われていました。
以下がテスト販売時期に新宿紀伊国屋本店にて浮かれて撮影した写真です。
棚からちょっとはみ出ているのがアイデンティティかな、と勝手に思ったりしました。
著者はどこまでやるの?
今回僕が担当したのは、基本的に「文章やソースコードなどのテキスト」と「キャプチャ画像」だけです。大枠の構成は技評さんから頂き、書籍としてのデザインや、綺麗な表組みなどもデザイナーさんにお任せきりでした。LLフレームワークBooksは表紙や中身のデザインが綺麗でとても気に入っています。ありがとうございました!
というわけで
「Fast CakePHP」は本日より全国発売ですので、店頭でも見かけることが出来るかと思います。どうぞよろしくお願いします! (_ _)
技術評論社 (2008/01/09)
買いました。先日の勉強会は申込だけして参加できなかったのでこいつで挑戦してみようかと長期大して買ってきました。
本の執筆はブログと違って、「反応がすぐにはない、孤独な作業」ですよね。PHP+CakePHPの両方を同時にはじめる人にも便利な本だと思います。お疲れさまでした!
はじめまして。LLフレームワークBooksシリーズのCakePHPはいつ出るんだろうなぁと心待ちにしておりました。akiyanさんが執筆されていたとは!今日早速本屋に行ってこようと思います。
【書評】 あきやんの『Fast CakePHP』がいい感じ!
さていつもお世話になっている青い人ことあきやんの単著が発売されたようです。CakePHPの解説本です。レベルとしては初級なのでPHPのインストールあたりか...
おぉーーーすげーー。
おめでとうございます!
この本はCakeの1.1ベースでしょうか?
1.2ベースの書籍が無いかどうか探しています。
CakePHPの解説は1.1系となっております。
突然PHPやりたくなって、PHP入門書とこの本を購入して勉強始めました。
サンプルプログラムを打ち込んだのですが、エラーやらレコード登録が変やらでしばらく悩んだ結果、インストールしたCakeが1.2RC3ってオチでしたorz
初めまして。田中です。
google map で取得した値(javascript)を input の値にしようと思っています。
そこで、
$form->create('Post', array('name'=>'myform'))
$form->input('city');
とし、
javascript 側で、
document.myform.data[Post][city].value = somedata;
と書いたんですが、form に値が入りません。
どう解決すればよろしいんでしょうか。
解決できるようでしたら、お願いします。
昨夜、質問させていただいた、田中です。
document.getElementById でアクセスできました。
ありがとうございました。