【CakePHP】「詳解CakePHP辞典(CakePHP辞典2)」を刊行しました!

大変にお待たせしました!

ご好評いただきました「Pocket詳解CakePHP辞典」の続編、「詳解CakePHP辞典(通称CakePHP辞典2)」が3/15日に無事刊行となりました。基本的に本書はCakePHPバージョン2系対応本ですが、前書でページ数の都合上なくなく削った機能の解説を追加し、より多くの情報を詰め込んだ「これぞ辞典!」と言える内容となっています。

facebookのECWorksページでも若干紹介させていただいていますが、本書が前作と比較してどのような変化があったか、また多くの方からご要望のある「電子書籍化」について、執筆時のエピソード的なものを交えてちょっと書こうと思います。

前作と変わったところ

Amazon等の書籍紹介ページをご覧になりますと、前作とあまり変化がないように見えますが、書店等で実物をご覧いただければ一目瞭然です。

  • 判型がひとまわり大きくなった
  • ページ数が増加
  • それでいて若干薄くなった
  • 紙質が柔らかなものとなりページが開きやすくなった
  • バージョン2系の現時点での全てのバージョンに対応(2.0〜2.3)
  • 前書で取り上げることが出来なかったクラスライブラリ・テスト等を収録
  • 本文中のクラスメソッドの収録順をアルファベット順にソート

…などなど

判型が大きくなった&ページ数の増加

本書ではバージョン2系から新しく搭載された、もしくは改良された機能は勿論、バージョン1系で収録できなかった機能についてもかなり盛り込んだため、結果として大幅にページ数が増加することが懸念されていました。
脱稿時に、前作換算でページ数を算定したところ、なんと1200ページ!! このままでは厚さ100%増しとなってしまいとても実用にはならなくなってしまうため、出版社側との議論の結果判型を大きくし、出来るだけページ数を増やさない方向で調整を行いました。
判型については「紙面が小さすぎ」「とてもPocketではない」とのご意見もあり、あの判型にこだわる必要もありませんでしたし、紙面が小さいことですぐに閉じてしまうなど逆に扱いにくいこともありました。なので丁度良かったのかもしれません。

それでいて若干薄くなった・柔らかい紙で開きやすくなった

ページ数はやや増加しましたが、本の厚さは若干薄くなりました。これは前作の紙が厚く硬めの紙だったため、柔らかく薄いものに変更したためです。このため開いたページが閉じにくくなりより扱いやすくなったと思います。
逆に、以前は硬い紙だったため自立が容易でしたが、本書は使い込んでくると立たなくなるかもしれません。

バージョン2系の現時点での全てのバージョンに対応

本書の発売は遅くとも3月であることが宿命づけられていた関係で、CakePHPのバージョンアップのタイミングに関してはかなり気をもんでいました。追記の可能な丁度良いタイミングで2.3がリリースされたため、本書にもその情報を盛り込むことが出来ました。本当に運が良かったです。
逆に、ページ数の都合からバージョン1系の情報はばっさりと削りました。両方の情報が載ってしまうと混乱するでしょうし。もしバージョン1系の情報が必要になりかつ前作をお持ちでない方は、是非「Pocket詳解 CakePHP辞典」の方をお求めください。しばらく併売されると思います(でも数量が減っているため入手はどんどん困難になると思われます)。

前書で取り上げることが出来なかったクラスライブラリ・テスト等を収録

前書ではページ数の都合から紹介できなかったクラスがあり、その中で「テスト」に関する仕組みを紹介できなかった経緯がありました。今回改訂版(実際には改訂どころか書き下ろしに近いのですが)ということで増ページが許され、テストをはじめとする多くの掲載できなかったクラスを盛り込みました。
テスト以外では、ファイル入出力やフォルダ管理に必要な「Fileクラス」「Folderクラス」、低レベルなネットワークアクセスを実現する「HttpSocketクラス」等、あまり情報として出回っていない仕組みについても掲載することが出来ました。

最後の最後まで悩んでいたのが「データソース」の周辺で、例えばCake標準でないデータベースにアクセスしたい場合やその他低レベルのデータ入出力インターフェースとしてデータベースの情報は必要になりますが、表面的にはモデルと似通った機能で構成されていること、解説をし出すと膨大で少々の増量では済まないこと、そもそもデータソースの利用やカスタマイズに関する情報は上級者向けのものが多い…等の理由で泣く泣く削りました。ただし、データソースのグループの中に「CakeSession」が含まれており、これだけは誰もが扱う重要な仕組みであるため、例外的に掲載しました。

また、テスト編の情報はあくまでも「Cakeで拡張された部分」のみの掲載となっています。Cakeのテストの仕組みは「PHPUnit」を オーバーライドあるいは別のクラスを利用して実現されているためPHPUnitの知識が必要になるのですが、本書でそこまでの解説をしてしまうともう1 冊分の情報量を詰め込むことになってしまいます。なので本格的なテストの記述についてはPHPUnitのマニュアルを参照していただくか、PHPUnit について書かれている別の書籍を併用していただいた方が良いと思います(PHPUnitの本はほとんど見受けられないので、誰か書いてくれないかなぁ…)。

紙の書籍ではやはり「ページ数との戦い」がどうしても発生してしまいます。これについては「完全電子書籍化」でない限りはなかなか難しいと思うのですが、紙の書籍でギリギリの情報量と実用性を考慮した上で今回の内容となりました。

本文中のクラスメソッドの収録順をアルファベット順にソート

辞典としての便利さの向上ということで「収録メソッド・プロパティ」をアルファベット順にソートしました。前書は「(頻度の高いものを除く)クラスファイル内での登場順」で掲載していました。これは「辞典で調べた後にソースコード内の該当箇所を検索しやすくする(もしくはその逆)」のためだったのですが、CakePHPをあまり知らない方にとってはソートされていた方が引きやすいだろうということで今回変更しました。

なお前書のAmazonの書評で「索引がクラス順にソートされているため、初級者だと機能を知らないので引けない」というコメントがあったのですが、最初メソッド名でソートをしてみたのですが、むしろこちらの方がわかりにくいのと、見た目的にも項目が不揃いで大変に見にくく難読であったため元に戻しました。基本的に内容が分からない場合は索引から入るのではなく本文から入っていただいて概要で判断していただいた方が分かりやすいのではないかと思います。

電子書籍版について

前書から散々に言われていて、今回もまだ未解決の事象として「電子書籍化」があります。確かにCakePHP辞典は電子書籍化された方が便利な事もあるのですが、おおむね次のような理由から実現に至っていません。

  • 出版社に電子書籍のインフラがないため
  • CakePHP辞典のそもそものコンセプトが「実務での紙で引くことの便利さ」であるため
  • CakePHPの認知度を上げるには紙媒体を優先した方が良いため

出版社に電子書籍のインフラがないため

電子書籍化ができない一番の理由は、現時点で出版社側に「インフラ」が無いためです。実は前書の時にも同様に言われ、議論もされたのですが、実現には至っていません。こればかりは出版社側の対応を待つしかありませんが、現場レベルでは十分に重要性を理解しており、電子書籍版について前向きであることは間違いありません。

コンセプトが「実務での紙で引くことの便利さ」であるため

これは私が100%オンラインで育っていない古い世代であるからかもしれませんが、やはり紙でペラペラめくることでの引きやすさは実務上で大変に役立つため、心情的に電子書籍よりも優先度が高いというのがあります。オンラインにはCookbookがありますし、ググって調べることも出来ますから、そちらで代用していただくことは出来るでしょう。
ただ、あくまでも優先度として紙の方が高いというだけで「電子書籍を出したくない」のではありません。現状出版が出来ない状況ですので、こればかりはどうしようもありません。

CakePHPの認知度を上げるには紙媒体を優先した方が良いため

ちょっと裏側の話になりますが…
電子書籍にこだわるのなら別の出版方法もありますが、やはり紙の本として出版することで書店に置いて貰うことが出来、またいろいろなオンラインストアなどでも取り扱って貰え、その結果googleの検索など多くの場所で「CakePHP」のキーワードが登場するようになるため、CakePHPの認知度を上げるためにはやはりまだ紙のほうが優勢だと思うからです。
例えば、自分の利益を優先するのであれば、出版社などを通さず個人的にKindle向けや別の電子書籍媒体を使って出版すれば、多分印税率は高く儲かると思います。ただ専門書の執筆で貰える印税はそれほど多くなく、実際のところ執筆にかける時間を別の案件などに使った方が遙かに上でして、電子書籍にしたところで大したことはないです。それよりは、CakePHPをより多くの方に使って貰いたい気持ちの方が上ですので、より効果的な方法として紙の方を優先しています。繰り返しになりますがあくまでも優先度の問題で、電子書籍「も」出せるのならそれに越したことはありません。

作業机の上の1冊に

本書はあくまでも「辞典」であり、この1冊でCakePHPの学習が出来るかどうかといわれると謎です。これは「英語の勉強を英和辞典1冊で出来るか」ということと同じで、CakePHPの学習には別の入門書を併用された方が良いと思います(例えば「CakePHP2 実践入門」のような素晴らしい本があります)。本書は、学習の過程で「より深くCakePHPの機能を知るため」あるいは学習を終え実践的な段階に入ったときに「こんな機能は無いのだろうか?」「こんな使い方は出来ないだろうか?」「この機能はどういう使い方だったっけ?」といった時に使っていただくための本で、いつも机の上に置いていただければと思います。Cake2が発表されてから1年以上立った今でもCake2の情報はネット上でもなかなか無いのが実情ですが、本書がよりCake2を便利に使っていただくための1冊になっていただければ幸いです。

アマゾンのサーバでエラーが起こっているかもしれません。一度ページを再読み込みしてみてください。

アマゾンのサーバでエラーが起こっているかもしれません。一度ページを再読み込みしてみてください。

アマゾンのサーバでエラーが起こっているかもしれません。一度ページを再読み込みしてみてください。

CakePHP2系の書籍

久しぶりのブログ更新です。
なかなかかけなくてスミマセン…

さて、更新が止まっているうちにCakePHPの本がいくつか出たり出したりしましたので、ここでまとめて書評&ご紹介いたします。

「CakePHP2実践入門」

CakePHPコミュニティで活躍されている皆さんが執筆された待望の一冊。以前は「CakePHPガイドブック」という本がありましたが、あれの改訂版とも言える内容です。CakePHPの概要的な話から始まり、コントローラ・モデル・ビューの作り方、ビヘイビア・コンポーネント・ヘルパー・プラグイン、ユニットテスト…といった基本的な使い方を押さえ、さらに現在のポピュラーなCakePHP開発の手法をこの一冊にまとめたといった感じです。

献本いただいて一通り読んでみましたが、この本のターゲットは「CakePHPを一通り触ってみた初級者〜中級者」が一番しっくりくるのではないかと思います。一度Cakeを触った方は、この本の随所にちりばめられた有用なTips・手法が大変に役に立つと思います。特にメール関連、デプロイ関連の章は即戦力でかなり役に立つと思います。

反面、「本当にCakePHP(あるいはMVCフレームワーク)が初めての方」には向いていないかもしれません。というのは、CakePHPのシステムが最初の段階である程度理解できていないと内容についていけないところが若干あります。例えば、一番最初の解説でモデルの解説がされていないのにモデルの話題が普通に出てきたりします(自分自身、一番最初のCakeの学習ではDBとモデルの関係性の理解に一番時間をかけたので、あの題材ならどちらかというとまずモデルの解説から入って欲しかった)。
ページ数も少ないため、全てのレベルの方に向けた本を一冊で完結するのは難しいでしょう。もしチュートリアル的に流れに沿って学習したいのであれば別の書籍も併用されると良いかもしれません(その「別の書籍」は後述で)。

豪華執筆陣の本だけあって中の情報は確かなものです。初級者は勿論、ある程度使い込んだ方でも持っていて損はないでしょう。幸いなことにCakePHPの書籍は他のPHPフレームワークと比べて沢山あるのですが、これぞ真打ち!的な本です。

アマゾンのサーバでエラーが起こっているかもしれません。一度ページを再読み込みしてみてください。

※「サンプルコードがない」という記述をしていましたが、githubで公開されているそうです。訂正します。
https://github.com/wdpress/CakePHP2_Practical_Guide

「オープンソース徹底活用 CakePHP2.1によるWebアプリケーション開発」

「CakePHP入門書」の定番であり、対応バージョンが1.2→1.3→2.1と改訂されていった伝統ある本です。入門書に徹した内容であり、プログラミング初級者でも分かりやすいです。
この本の魅力は「サンプルコードがダウンロード可能」な点で、そのコードを実際に動作させて学習できるところが良いと思います。また学習できる範囲もかなり絞り込まれており、最初には丁度良いです。本職のライターさんが書かれている本なので、解説が大変にわかりやすい! 私自身、「全く分からない人に伝える」というのが大変に難しくいつも苦労しているのですが、とても見習いたい部分です。

反面「2.1版なのに若干古い技術が使われているところがある」点があります。例えば、本編ではリクエストデータの取り出しに「$this->request->data」ではなく「$this->data」が使われてしまっています。今のところこれでも動きますが、推奨されたものではないためあまり良いとは言えません。それから詳細なCakeの学習には向いていないため、すぐに次の本が必要になる点かと思います。

アマゾンのサーバでエラーが起こっているかもしれません。一度ページを再読み込みしてみてください。

「WebデザイナーのためのCakePHPビューコーディング入門」

記事に書くのが大変に遅くなってしまったのですが、今年の春にGreativeの原氏と共著で発刊させていただきました。今までのCake本はほぼプログラマー向けに書かれたものですが、本書は「Webデザイナー向け」という野心的なものです(笑)。

本書を企画したきっかけは、昨年に開催際した「(第一回)デザイナー向けCakePHP勉強会」でした。懇親会等でいろいろなデザイナーさん・コーダーさんとお話させていただいた際に、「もっと勉強してみたい」という声がたくさんあったので、是非書籍にそのエッセンスをまとめられたらなと思い、企画を出版社に持ち込みました。デザイナーにあてたWebプログラミング技術書というのはあまり例がないため(スマホアプリ開発本はあると思いますが)、出版社側は冒険だったでしょうが、快く企画を通していただけました。

ちょっと余談になるのですが、当方はかなり前から「プログラマーとデザイナーのコラボレーション方法」という点でいろいろ模索していて、Smartyを使ってみたり、別のテンプレートを考案してみたり、「Tplcutter」というHTMLを切り出してビューにするものを開発してみたりしたのですが、こういった解決方法をするにしても、やはりシステムを理解して貰う必要がどうしてもあり、「フレームワーク」あるいは「MVC」といったものの共通認識は必要なんじゃないかと考えるようになりました。ただ、ノンプログラマー的な方が理解可能な書籍はなかなかないため(基本的にフレームワーク本はプログラマーの目から見ても十分難易度が高いと思う)、もっとしきいの低いところで実現する方法はないかと考えていました。本書の執筆の他にも、最近では「baserCMS」というCake製のCMSの開発に関係してますが、「CMSならデザイナーさんにもCakeを触って貰えるのではないか? テーマとか作れるようになったら、他のCake案件も頼めるのではないか?」というところで期待をしている感じです。

さて本書はデザイナー向けであって、内容はビュー周りの解説に徹しています…といいたいところですが、上述の通りある程度はそれ以外のパートの動きも知らないと話にならないため、極力最低限、全体の制作の流れを簡単に解説しています。基本的に全編通してチュートリアル形式になっていますが、サンプルコードがあらかじめスタートと完成形両方が収録されていて、確認が容易にできるようになっています。またサンプルの内容は「問い合わせフォーム」が題材になっており、表画面と裏画面の両方の制作を行うようになっています。Webの案件はほぼこの題材の応用でやっていけるでしょうから、必要最低限の学習で実践できるような内容にしました。

チュートリアル形式ということで、CakePHPの動作する環境が必要になるのですが、例えばローカルにXAMPP等を入れていると動かないケースがどうしても出てしまうので、本書では思い切って「バーチャルマシン」を用いてCakePHPの動作するLinux環境をダウンロードできるようにしました。具体的にはVirtualBoxを導入して仮想マシンファイルをサンプルダウンロードサイトから入手・展開し、本書の解説に従って進めていただければ極力環境依存がないようになっています(勿論、サンプルコード単体を入手して試すこともできます。
また、gitを使ってコラボレーションする方法や、CSSフレームワークである「Compass」を使ったりとか、かなりモダンな開発スタイルも解説したりしています。

本書の活用方法は、表題の通りデザイナーさん・コーダーさん向けの学習教材ではありますが、Cakeバリバリのプログラマーさんにも是非買っていただいて、案件でコーダーさんあたりに発注する際に「この本を読んで、ビューまで作って!」と言えるような内容を目指しました。むしろこちらがメインです(笑)。Cake案件で是非活用いただけますと、野望の一つが達せられる感じです。
幸いなことに、Amazonの書評で、初級者プログラマーさんにも役立つ本と好評いただいて、嬉しい限りです。ビュー以外の部分については、他の本で補っていただけると良いのではないかと思います。

アマゾンのサーバでエラーが起こっているかもしれません。一度ページを再読み込みしてみてください。

どの本を買ったら良い?

CakePHPの学習にあたって、「この3冊のどれをチョイスしたら良いか?」という点ですが、記事内でも若干指摘していますがまとめてみると…

上級者: (CakePHP2実践入門) (CakePHPビューコーディング入門)
中級者: CakePHP2実践入門 (CakePHPビューコーディング入門)
初級者: CakePHP2.1によるWebアプリケーション開発 or CakePHPビューコーディング入門 → CakePHP2実践入門

という感じと思います。カッコについては「あると便利」の位置づけです。
基本的に、どれが良い・悪いというのはなく、用途によってどれもオススメできる本です。

「CakePHP辞典2(仮)」について

最後に。

CakePHP1.2/1.3対応で書きました「CakePHP辞典」ですが、残念ながらCakePHP2系では仕様が変わってしまい、そのままで使うことは若干難しいです。そこで、「ビューコーディング入門」脱稿後から「辞典2」の執筆をスタートし、現在折り返し地点を過ぎたところです。
予定では、年内中には刊行できると思います。できるだけ早い段階で書店に並ぶように頑張っています。

Cake2になって仕様変更になった部分は網羅し、新しいクラスや仕組みについてもかなりの量を追加しています。前回収録できなかったテストについても予定しています。本当は全部掲載したいのですが、それだとものすごい量になってしまいますので、実務上問題ない範囲でできる限りの情報を詰め込んでいます。プロパティのオプション値についても、詳細に書いている点はもちろん従来と変わりません。
内容はざっと見積もりですがおそらくそのままいくと5割増しかと思います(!!!)。こうなってくると自立するどころではなくなってくるのですが、何らかの工夫をする予定です。

というわけで、若干お待たせしている辞典2ですが、鋭意執筆中なのでもう少しお待ちいただけますと幸いです。なお、ページの都合上バージョン1系には対応しておりませんので、バージョン1系をお使いの場合は現行の「CakePHP辞典」を併せてご利用くださいませ。

【CakePHP辞典】Tips第2回:Model::save()の追加説明

Pocket詳解 CakePHP辞典」内で、Modelクラスで主要機能でもある「Model::save()」内の解説について、若干足りない部分がありましたので追加させていただきます。

【書式】

$this->save($data, $validate, $fieldList);

【引数】

変数名 初期値 説明
$data array null 保存するデータの連想配列
$validate mixed true バリデーションを行う場合はtrue。また他のオプションを与えたい場合は連想配列で指定。下記参照
$fieldList array array() 保存するフィールド名の配列。nullの場合は現在の$this->whitelistの保存指定を空にする。array()の場合は現在値で保存する

▼$validateに指定できるオプション値

キー名 初期値 説明
validate array null 保存するデータの連想配列
fieldList array array() $fieldListと同じ値を指定する
callbacks array array() コールバックメソッドを実行する場合にtrue。もしくは「before」でbeforeSave()を、「after」でafterSave()を実行する

$validateは、そのものの値はbooleanですが、連想配列を与えることもでき、一般的な$optionsと同じようにオプション値としてふるまいます。この場合は$fieldListは無視されますので、必要なら$validate内に含めます。また「callbacks」というパラメータを与えることもできます。callbacks は通常trueであり「beforeSave()」「afterSave()」コールバックを通過しますが、falseにすることで通過しません。また 「before」「after」とすることでbeforeSave()だけ、afterSave()だけ通過させることもできます。

なお、このcallbacksオプションは「Model::saveAll()」のオプション値としても有効です。何故ならsaveAll()は内部でsave()をコールしているためです。

各メソッドの解説は「Pocket詳解 CakePHP辞典」の58ページおよび61ページに掲載されています。

ほかにも便利な機能が紹介されている「Pocket詳解 CakePHP辞典」を是非よろしくお願いします!

アマゾンのサーバでエラーが起こっているかもしれません。一度ページを再読み込みしてみてください。

【CakePHP】「Pocket詳解CakePHP辞典」刊行します!

2013年3月15日に、続編の「詳解 CakePHP辞典」が刊行されました。
詳しくは下記リンクを参照してください。
http://blog.ecworks.jp/archives/1488

今年1月から企画が始まり、いくつかのハードルを超えながら執筆したCakePHPの本が、いよいよ刊行できる運びとなりました!
前回執筆の「PHPで作る携帯サイト デベロッパーズガイド」は、どちらかというとCakePHPの解説というよりはCakePHPを用いたサイト開発手法をメインに書かせていただきましたが、今回は純粋にCakePHPの内部を徹底的に解説した、「CakePHPを使いこなすため」のリファレンスマニュアル本として書かせていただきました。

Pocket詳解CakePHP辞典
【書名】
Pocket詳解CakePHP辞典【出版社名】
秀和システム【著者名】
滝下 真玄

【価格】
2,600円(本体価格)

【ページ数】
672ページ(随一の圧倒的な情報量!!)

【ISBN】
ISBN978-4-7980-2745-6

【発売日】
2010年09月28日より順次販売

前書では600ページ弱もの大作を書いてしまい「もう厚いのは辛いのでやめよう」と思っていましたし、出版社の担当様も相当苦労されていたので、企画時にも「辞書にするのはやめましょうね!」という紳士協定(?)で始めました。しかし、いざ書いているうちにページ数はどんどん増え、気がついてみれば本のみで自立してしまう厚さに(汗)。「Pocket詳解」シリーズに加えていただける事になったのはそれから後の話なのですが、文字通りの辞典になってしまいました(笑)。

この厚さになってしまった最大の理由は「向こう3年間はいつも手元に置いていただける本」というコンセプトがあったためです。CakePHPの関連書籍は幸いな事に他のフレームワーク本と比べてかなりの数があるのですが、ほとんどが初級者向けの本であり、実用的な情報がメインとは言えない状況です。またリファレンス本は1冊存在していますが、1.1~1.2ベータ版だった頃に書かれていた本のため大変に情報が古く、またページ数も抑えられていて主要なものの一部しか解説されていないため、かゆいところに手が届かない感じです。つまり開発現場などで要求に応えられるような本が無い状況であり、この辺を何とかしたいなと思っていました。
私自身も日頃開発をしていく上で「あれっ、あのメソッド何だっけ?」とソースコードを調べ、引数やオプション値を調べて実装する事が多いのですが、この手順が大変に時間を使っていたりしまして、本を開くだけでこれらの値の意味がすぐに分かるような本を熱望していました。Cake本に限らず、ネットの情報、ましてやCookbookやAPIでもオプション値については十分な情報が載っていないため、いつも結局行き着くところはソースコードになってしまうのです。なので「とりあえず全ての引数やオプションの意味が分かるような本があれば便利だよな」と日頃思っていました。

こんな事情もあったため、まず第一にやりたかった事は「オプション値の全てが分かる」事でした。「オプション値を連想配列で渡す」というのがCake流だと思いますが、その肝心のオプションについてよく分からない…そんな事もあるかと思います。一応ソースコード内に記載されているドキュメントでも若干分かるのですが、間違いも多くかなり不正確のため、本書では執筆時に一度ソースを解析してから列挙をしました。
それから「今まであまり知られていない便利な機能の発掘」です。例えばその代表例が「Setクラス」「ClassRegistryクラス」ではないでしょうか。知らない、便利そうなんだけどよく分からないので使わない…みたいになっていませんか? 何を隠そう自分もその一人です(笑)。それだけではありません。日頃モデル・コントローラあるいはコンポーネント・ヘルパー等を作成する際に親クラスでextendsしていると思いますが、その親クラスに有用なメソッドが存在している事をご存じでしょうか。単純にextendsしているだけの方が多いのではないでしょうか? 本書ではその部分についてももれなく解説し、より便利にCakeを使ってもらいたいと考えています。
そして忘れてはならないのが「新機能の解説・従来との比較」です。もちろん本書は「1.2/1.3両対応」です! 紙面の都合上全てを十分に行う事はできませんでしたが、例えば今まで暗闇に閉ざされていた「Jsヘルパー」や「(新)prefixルーティング」「カスタムルーティング」についても理解していただけるかと思います。また、両バージョンそれぞれ固有の指定方法についてもカバーされていますので、1.3へのアップグレードにも役立つかと思います。

紙面の都合上どうしても掲載できなかった情報はやはりあります。
例えばページ数の節約のためにサンプルソースコードはかなり削ってしまいました。このため最初のとっかかりとして買う1冊としてはふさわしくないかもしれません(最低限の記述方法は各章冒頭に一応載っています)。この辺はむしろ初級者向けの本の役割ですので、本書と両方購入していただき、初級本を勉強していく上で分からない引数やオプション値について本書でひいていただくような使い方がベストだと思います。英語の学習に、英語教本と一緒に英和辞典を買うように、本書は辞書として購入していただけると間違いないです
他にも上級者向けの機能(例えばDataSource等)、使用頻度がかなり低そうな機能などについても割愛させていただきました。この辺については別の機会・形で実現できればよいと思いますが。

限られた中でギリギリまで情報を詰め込んだ価値のある1冊になったと思います。Cakeの内側についてここまで解説した本はおそらく今までなく、「世界一CakePHPのことが分かる本!」と自負しています(笑)。カバーの色も大変わかりやすいと思いますので、店頭で見かけましたら是非手にとっていただき、そしてそのままレジに直行していただけますと幸いです(笑)

※09/21時点ではまだAmazon等で予約等はできないのですが、発売情報については後日追記させていただきます

【追記】(2010/09/23)
Amazonに書籍が掲載されました。
下記よりお求めが可能です(是非このページからお願いします(^^;)

アマゾンのサーバでエラーが起こっているかもしれません。一度ページを再読み込みしてみてください。

【追記2】(2010/09/25)
見本誌が届きましたので写真を何枚か掲載します。

表紙写真です。見事に自立しています(笑)
本書に収められている内容。ヘルパー編とコアライブラリ編がもの凄い量です!
内容の抜粋。このページはModel::find()。指定できるオプション値が全部載っています

【戯れ言】近況報告とか今後の予定とか

すっかりブログをサボってしまっていてすみませんでした。しばらくきつい作業をしていたのでこちらをやっている暇は全くありませんでした(^^;。というわけで近況報告や今後の当方の予定なんかを。

Twitterをフォローされている皆さんはご存じかもしれませんが、今まで進めていた執筆作業がようやく一段落しまして、現在は用意した原稿から実際の製本に向けての作業に入りました。発売スケジュールもほぼ確定し、それに向けてがんばっていくところです。
前回は「携帯+CakePHP」というテーマで こちら を執筆させていただきましたが、今回は携帯からは離れ、純粋に「CakePHPの詳細を解説」したリファレンス本になります。Cake本はほとんどが「入門書」しかないためにある一定レベルに達するとこれらは卒業する事になるかと思いますが、その次の段階で参考になる本が無く、また作業時にちょっと知りたいような辞書的なものがないため、その隙間をまた埋めさせていただいた感じです。
競合する本は1冊あり、おそらくは誰もが持っていると思われますが(笑) こちら は1.2ベータ版の情報で大変古く、かといってこれしか使えるものがないため、現行バージョンのものが切望されていました。そこで今回は(まあ当たり前かもしれませんが)1.3に対応し、またまだ現役で使用されている1.2でも使えるよう両対応しました。
そしてここからが重要ですが「引数で与えるオプション値」についても詳細に解説した点が今までの本との大きな違いになります。Cakeのクラスメソッドは大抵$options等で連想配列を渡す仕組みになっていますが、その中身に何を記述して良いかわからない場合が多かったと思います。またCookbookに書かれていない内容が多く、そしてそれが意外に大事だったりする事もあり、この辺は是非やりたい…いやこれをやらなければ価値がないとさえ思っていました。
今回のコンセプトとしては「今Cakeに詳しくない人が使い始め、習得しても向こう3年は使える本」を目指しました。チュートリアルや多の入門書籍を参考にCakeで簡単なサイトが作れるようになってきて、じゃあ今度はオリジナルだ!という段階になり、そこからずっとそばに…という感じです(笑)。3年というのはその頃に2.0がちらほら出始めるでしょうから、そこで寿命になるのかなという感じです。その間、いつも机のそばに置いといてもらえればうれしいです。本の大きさも現実的なものを目指し、一回り小さいサイズにしてページ数も辞書にはならないものを想定をしています(まだページ数が確定していないのでアレですが、これに関してはちょっと自信がなくなってきました)。
それによる弊害もあり、限りあるページ数でたくさんの情報を詰め込む必要があるため、サンプルソースコードは必要な部分以外は極力省かせていただきました。その代わり極限までメソッドを掲載しました。このためちょっと初級者向けの内容ではないかもしれません。この辺はコンセプトとして割り切りました。また触れる事のできなかった内容もありますが、普段使いを最優先にした内容になっています。唯一残念なのはテストケースの解説がページ数の都合でできなかった事です。この辺については こちら のような大変に参考になる本がありますので、そちらにお任せする事にしました(笑)。
発売日・書籍案内についてはまだ確定していないためにお知らせできませんが、だいたい9月末を予定しています。PHP Matsuriには間に合う予定です(笑)。
そんなわけで長らくお待たせしましたが、もう少しですのでお待ちいただけますと幸いです。

執筆の話が長くなってしまいました。ごめんなさい(^^;;;

で、とりあえず本の方は一段落しましたが、休み無く次の案件について現在取り組み始めている段階です。何をやっているかはちょっと言えないのですが、いまはやりどころの仕事でしかも結構大がかりな事をやっています。ちょっとこの辺に関してノウハウがなかったので、大変に良い経験になっていますが、その代償として休みがほとんどありませんorz。10月末までは正直何もできない状況です。

合間に、今まで放置されていたKtai Libraryのバージョンアップ作業に取り組む予定です。「時間がない」のにと思われるかもしれませんが、上記の案件で使わなければならないので(笑)。でも正直言いますと、本来は正式版を出すつもりでいましたが、その前段階のバージョンをリリースする事になるかもしれません。
目玉は「キャリア間での絵文字の相互変換」についていよいよ取り組みます。あとプラグイン化をする予定です。今までは上書きでOKだったと思いますが、次のバージョンはちょっといろいろ直してもらう必要が出ます。

そして10月はじめに開催される「PHP Matsuri」ですが、上記の件もあり表だった参加はできない予定です。何とか当日ひょこっと顔を出す可能性はあるかもしれませんが、時期的にデスマーチ期間だと思いますので(^^;。そして関係者の皆様、人員の頭数になれなくてごめんなさいm(__)m。

その代わりといってはなんですが、11月台に、これも今まで放置されていましたが「CakePHP温泉部」の2回目を開催予定でいます。10月に開発イベントをやる関係で、予定していた開発系の内容についてはまだ揺れているところですが、何かしら結果が得られるようなものにしたいとは思っています。アイデアありましたら募集しています。場所に関しても情報募集中。広いので前回のところでもまあいいのですが(笑)。

長文になってしまい申し訳ございません。
他にも書きたい事がありますがこの辺で。
刊行の正式案内は後日させていただきます。

「CakePHP勉強会@東京5」報告

昨日は1年越しの「CakePHP勉強会@東京5」が開催されました。
簡単ですがイベントの内容の報告と、当方で発表しました「Ktai Library on Cakephp1.3の資料を公開させていただきます。

ご覧の通り満員御礼!

今回は、前回の勉強会から丸1年、途中であったCakeMatsuriからも半年以上大きなイベントがなかったこともあるかもしれませんが、50名以上がひしめき合うイベントとなりました。セッション内でアンケートを採ったところ、そのうちの半分以上はこれらイベントを未経験ということで、なかなかフレッシュな集まりでした(笑)。

そして今回は、「福岡」「名古屋」「札幌」のサテライト会場、そして「ニューヨーク」からのセッションといった、今までになかった試みが行われました。凄いですね!遠くで同じイベントを共有できるなんて、時代の進歩というのか、とうとう勉強会もここまできたか!という感じでした。まあ装備や通信環境といった負担があるのでなかなか全部とは言えないですが、こういう仕組みは今後もやっていきたいですね!サテライトに名乗りを上げていただいた福岡の@k1LoWさん、札幌の@nazoさん、名古屋の@a24lovewebさん、ありがとうございました! 時差を乗り越えて発表された@yandoさんお疲れ様でした!

セッション時はこんな感じ

最初のうちは厳かに、というかちょっと堅い雰囲気でのスタートでした。

途中で茶菓子などが出たり、サテライト会場の中継とかが入って若干堅さが和らいだところで、いよいよ当方の発表とあいなったのですが… ちょっと外しましたね(^^;

というわけで、当方で発表しましたスライドを上げておきます。

「Ktai Library on CakePHP1.3」スライドの閲覧は画像をクリック

各セッション、LTの内容は今回もとっても濃かったですね。
特に、@takamunetaniiさんの「教えてこの子twitterツイート君」の事例紹介は、Twitterサービスをはじめとする「ヒットしたらドカンとアクセスが来ちゃう系サイト」を考えている方の励みになるものではないかと思います。何を隠そう、自分もとっても参考になりました!
それから、@hiromi2424さんのCakePHPハックもとても参考になりました。特に初期化周りに関してはテストコードを書く際にとっても参考になると思います。自分もはまりました(笑)。

Cakeマシュマロ配布なう

前回の勉強会は、「Cakeまんじゅう」なるものが配布されましたが、今回は「Cakeマシュマロ」が参加者全員に配布されました。これがなかなかかわいくて、食べるのがもったいない! そう思った人も多いはず(笑)。

立ち飲み形式で懇親会。#cake_beer!

勉強会が終わり、同会場で懇親会。ビールやサンドウィッチを片手に参加者との交流です。

今回とっても感じたことは、Ktai Libraryは既に業務レベルで活躍している点。そして皆さんに「とっても便利だ!」といっていただけている点にとても嬉しく思いました。本を出させていただいた点もある程度認知度の向上に役立ったかと思いますが、Ktai Libraryユーザーが確実に増えているんだなと実感できました。本当にありがとうございます!

また、今回はゲーム関連の業務をされている方にも何名かお会いしました。以前そのようなところで仕事をしていましたのでとても懐かしかったです(しかも昔おつきあいのあった会社さんだったり!)

これは懇親会開始直前の記念写真。「はい、Cake!」

それからこれも大変に驚いたのですが、なんとあの「セカイカメラ」もCakePHPで動いているそうです!
いやー、これは凄いことです!
懇親会の終わり間際に中の人とご挨拶させていただいたのですが、このあと付近の和民で2次会が行われたのですが、席をご一緒させていただけたのでずっといろいろなお話をさせていただきました。ありがとうございました。
とてもためになりました。

自分はそのあと終電の関係で先に上がらせていただいたのですが、日が変わって4次会くらいまで行われたみたいで、しかもそのあと「オクトーバーフェスト」で#cake_beerされていたみたいです。ちなみに当方は結局終電に乗れず、一人寂しく途中駅付近のマックで執筆活動をしてました(でも酔いが回っていてそれほど進みませんでしたが)。

次のCake関連のイベントは、勉強会内でもありましたとおり10/2~3に開催される「PHP Matsuri」です。海外からPHPに関連するゲストを招いてのセッションがある他、開発合宿→コンテスト等もあったり、2日間を「夜通しで」楽しめる大変に濃いイベントを現在計画しています。日頃業務以外での開発は難しいでしょうし、他の人との共同作業とかもなかなかできないと思いますので、なかなか新鮮な体験が出来るのではないでしょうか。また、それ以外にも楽しい催しも企画していますので、祭りとして楽しんでいただけますと幸いです。こちらの方も是非宜しくお願いします!

USTREAMの録画はこちら

http://www.ustream.tv/channel/cakephpstudy

他の発表者のスライドのリンクはこちら(発表順)

▼特報目玉イベント2010(@yando)
http://www.slideshare.net/yandod/20100529-phpday

CakePHP1.3 stable(@cakephper)
http://www.slideshare.net/ichikaway/cakephp-tokyo5

Ktai Library on CakePHP1.3(@ecworks_masap)
(上記にあります)

▼コアライブラリのエレガントなハック(@hiromi2424)
http://www.slideshare.net/hiromi2424/cakephpstudy5-hacks-jp

▼twitterとcloud serverとcakeで新規サービス(@takamunetanii)
http://docs.google.com/present/view?id=d4b7q8p_21cq5hkjg8

▼WordPressとCakePHP連携(@kara_d)
http://www.slideshare.net/karadweb/cakephp-and-wordpress

▼CakePHPでjQueryを使ってみた(@nano_eight)
http://www.slideshare.net/nanoeight/cakephpjquery-4357936

▼Cakephp tips for my next project(@evertOn)
http://www.notreve.com/cakephp_study-2010-05-29.pdf

▼あのCMS eZ publishをCakePHPのModelにしちゃう(@leebenny)
http://prezi.com/ugsu8hwgypud/datasource-for-ez-publish-in-cakephp/

実”戦”CakePHP Plugin(@k1LoW)
http://www.slideshare.net/k1LoW/cakephp-plugin-4364102

イベントの感想記事はこちら

▼「第5回CakePHP勉強会@Tokyo 東海サテライト」に行ってきました(@longkey1)
http://blog.longkey1.net/archives/902

▼東京のCakePHP勉強会を札幌でUst参加する会まとめ(@nazo)
http://d.hatena.ne.jp/nazone/20100529/p1

▼第 5回CakePHP勉強会 まとめ ~CakePHPへ貢献編~(@nycom)
http://d.hatena.ne.jp/nycom/20100529/1275116447

第5回CakePHP勉強会 まとめ ~発表された方のTwitter ID~(@nycom)
http://d.hatena.ne.jp/nycom/20100601/1275389287

▼第五回CakePHP勉強会に行ってきた(@tikitikipoo)
http://blog.cypher-works.com/?p=1159

▼第五回CakePHP勉強会Tokyoに行ってきました。(@hamichamp)
http://blog.livedoor.jp/hamichamp/archives/51445403.html

▼第5回 CakePHP勉強会@Tokyoに参加してきましたw(@leebenny)
http://d.hatena.ne.jp/bennylee/20100602

▼第5回CakePHP勉強会に参加してきました(@tkykmw)
http://wp.serpere.info/archives/1251

▼第5回CakePHP勉強会@Tokyoに参加してきました(@kazukichop)
http://d.hatena.ne.jp/kazukichop/20100602/1275493956

▼第5回CakePHP勉強会に参加いたしました。(@yashio)
http://yashio.wordpress.com/2010/06/03/%E7%AC%AC5%E5%9B%9Ecakephp%E5%8B%89%E5%BC%B7%E4%BC%9A%E3%81%AB%E5%8F%82%E5%8A%A0%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82/

▼CakePHP 勉強会@東京(2010年5月)(@mon_sat)
http://text.tklabo.net/blog/18/cakephp-study-2010-05

▼第5回CakePHP勉強会@Tokyoに参加・発表してきました。(@hiromi2424)
http://d.hatena.ne.jp/hiromi2424/20100603/1275558884

▼第5回CakePHP勉強会メモリスト
http://pub.studio15.jp/archives/2655

▼第5回 CakePHP勉強会@Tokyo 東海サテライトを開催しました(@a24loveweb)
http://as.blog16.jp/index.php/2010/06/03/p1330

▼第5回CakePHP勉強会@Tokyoに参加してきました(@nano_eight)
http://d.hatena.ne.jp/nano-eight/20100531/1275307253

【追記】(2010/05/31)
発表者スライドのリンクを追加しました(未公開分を除く)

【追記2】(2010/05/31)
ブログ感想のリンクも追加しました

【追記3】(2010/05/31)
若干記事を修正し、ブログ感想のリンクを追加しました

【追記4】(2010/06/01)
発表者スライドのリンクを追加しました

【追記5】(2010/06/02)
ブログ感想のリンクを追加しました

【追記6】(2010/06/03)
ブログ感想のリンクを追加しました

【追記7】(2010/06/03)
スライドのリンクを修正し、ブログ感想のリンクを追加しました

【追記8】(2010/06/04)
ブログ感想のリンクを追加しました

【CakePHP/KtaiLibrary】「PHPで作る携帯サイト デベロッパーズガイド」刊行します!

icon_ktai以前に予告していたものなのですが、なんとか予定日に入稿されたようですので早速告知させていただきます。

CakePHPに、当方で発表しています「Ktai Library」を組み合わせて携帯サイトを制作する方法を解説した「携帯サイト制作本」が、いよいよ12/23頃に書店に並ぶことになりました!

PHPで作る携帯サイトデベロッパーズガイド_表紙

【書名】
PHPで作る携帯サイト デベロッパーズガイド

【出版社名】
秀和システム

【著者名】
滝下 真玄

【価格】
3,000円(本体価格)

【発売日】
2009年12月23日頃

内容は、前半は携帯サイト制作に必要な情報をまとめ、後半は「携帯ショッピングサイト」を題材にして制作過程を順に追って説明していく、という感じです。
今まで「フレームワークを用いた携帯サイト制作」を扱った書籍がなかったので、かなり冒険的な内容と言えますが、これも「Ktai Libraryがあってこそ」実現できたのではないかと思います。
また、サイト制作の実録を掲載したことで、今までフレームワークそのものの使い方を解説した書籍が多かった中で、より実践的な参考書籍として出せたかと思います。

価格が高くなってしまったのは、ページ数が600ページ弱と大変に多くなってしまったことで単価が上がってしまいました(ゴメンナサイ)。が、Ktai Libraryの使い方については勿論のこと(リファレンスマニュアル収録)、AuthコンポーネントによるユーザログインやセキュリティコンポーネントCakeShell(CakeSchema含む)等のCake機能の活用、MediaPluginQdmailといった有用なツールの活用、そして郵便番号データベースによる住所の省入力・空メールメールマガジンといった携帯ならではの機能の実現など、盛りだくさんの内容になっているのではないかと思います。
どちらかというと「携帯サイト制作をしたい」あるいは「これからCakePHPを使っていきたい」という方向けに書いていますが、日頃Cakeを使っている方でも、携帯サイト制作の実例としてお読みいただける本になったかと思います。サンプルサイトは「管理側」「公開側」とPCサイト、携帯サイト両方を同時に作っていきますので、それぞれの作り方の違いについても理解しやすいかなーと思います。

ちなみに、タイトルが「PHPで~」となっているため、CakePHPカテゴリで書店に並ばれないかもしれません(帯には一応書いて あります)。PHPコーナー、もしくは携帯コーナーでとびきりぶ厚い本がありましたらそれですので(汗)、お手にとって、できればそのままレジにお持ちく ださい(笑)。

個人的には、初めての書籍化ということで伝えきれなかった点、至らない点もあるかと思いますが、「CakePHPで携帯サイトはバッチリいけるぜ!」あるいは「CakePHPってなかなか良いぜ!」が伝われば、大変に嬉しいです。また、本書にて携帯サイト制作がより身近になってくれれば幸いです。

【追記】(2009/12/19)
Amazonで購入できるようになりました。
下記からお求めになれます。

アマゾンのサーバでエラーが起こっているかもしれません。一度ページを再読み込みしてみてください。

P1000035
紀伊國屋書店新宿本店の様子

【追記2】(2009/12/25)
紀伊国屋さんの店頭で並び始めているようです。
ネットショップでも購入できます。

■2009/12/25現在で「在庫有り」の店
札幌本店 仙台店 川越店 流山おおたかの森店 新宿本店
新宿南店 笹塚店 大手町ビル店 北千住マルイ店 ららぽーと豊洲店
横浜店 ららぽーと横浜店 梅田本店 本町店 京橋店
泉北店 堺北花田店 高槻店 加古川店 川西店
大津店 富山店 福井店 クレド岡山店

【追記3】(2009/12/25)
ジュンク堂池袋本店にも在庫があるようです。
ネットショップでも購入できます。

【追記4】(2009/12/26)
Amazonがようやく「在庫有り」になったようです。
発行部数の関係で、大手書店以外にはなかなか置かれないかもしれないそうです。

【追記5】(2010/2/19)
書評をいただきました。ありがとうございます!

▼[読書メモ]PHPで作る携帯サイトデベロッパーズガイド
http://go2childcare.blog95.fc2.com/blog-entry-403.html

【追記6】(2010/4/22)
書評をいただきました。ありがとうございます!
タイトルについては色々と大人の事情があった、とだけ言っておきます(笑)

▼余計なお世話かも知れないけれど、これタイトルで損してるんじゃね?「PHPで作る携帯サイトデベロッパーズガイド」
http://www.kantenna.com/info/2010/04/php_3.php#more