とはいっても導入部分だけ(^^
(ps:後日これに続く箇所として、→「Dispatcher::dispatchの処理の流れ」作成しました。)

巷で話題のCakePHP2実践入門。これは本当におすすめ。ページの隅々まで埋め尽くさんばかりの勢いで、数々の豪華執筆陣が腕を競っています。

まず嬉しいのは、無駄な情報は極力削ってる。よーしフレームワークやっちゃうぞ~、と張り切って蓋を開けたらPHPの基本文法だとかローカルサーバーの構築方法だとか、挙句の果てはレンタルサーバーの借り方だとかで数十ページが過ぎ去ってしまう、なんてことはない。

当然CakePHPの基本的な使い方は、インストール方法に始まってMVCの操作からビヘイビア・ヘルパー・コンポーネントの使い方、さらにはプラグインの開発まで充実しているけど、実は、初心者の方はまず公式のブログチュートリアルぐらいはやっておいてね!っていう声が聞こえては来る。でも、公式のチュートリアルって最高によくできた入門教材ですよね?それと同じことは必要ないでしょってのがこの本のスタンス。だと、思う。

で、そんな少なくともPHPの初歩は出来ていて公式のチュートリアルもやってみた。少なくともやってみたけどもう一つうまく行かなかった、ぐらいの方なら十分おつりがくる本だと。そして一通り触ってみたけど、さて次どうすんの?って人、まぁ自分もそうなんですが、にとってはまさに宝の山。深く一点掘りしている個所もありながら、軽く触りだけを紹介する場面もあり、トピックの種類は半端なく多い。興味を持てば、これをきっかけに効率よく検索できる。たとえば「アクションごとにモデルを切り替える」なんていうTipsは、ある一つのコラムに過ぎない扱いなのだけど、自分にはとても参考になった。

そして何より僕が嬉しかったのは巻末の付録に掲載されていたCakePHPのシーケンス図。Dispatcher が new されてからの一通りの処理をコールバックに絞って図にしてくれています。個人的にソースコードを読むのは嫌いじゃないのですが、何か問題があった時にその処理の前後を探るということはしても、なかなか全体を見渡すということが無かった。でもこれを見ることによって CakePHP の内部の挙動を俯瞰することが一撃で可能に!一見複雑そうに思えても、図に書くととてもすっきりと作られているのだなと感動。

しかし、この素晴らしいシーケンス図を見たおかげで、じゃぁModelにクエリ投げる時はどうなってんのよ?とか、Dispatcher を生成するまでの遷移はどうなってんの?なんていう興味がわいて仕方なくなってしまうわけです。

そこで、今まで進捗を示す図と言えば内装工事の工程表しか作ったことのない私ですが、見よう見まねで「index.php が Dispatcher を new するまで」のシーケンス図(もどき?)を作ってみました。astah* community – 無償UMLモデリングツール を訳も分からないなりに使わせていただきました。ありがとうございます。

シーケンス図とは本来オブジェクトの生成から消滅までのライフサイクルを表現するためのものらしいので(本当かな?)そういう意味においては根本的にずれてます。というか、それ以外にも突っ込みどころ満載だと思いますが、素人の作品だなどと割り引かずにどうぞ厳しく突っ込みながらご覧くだされば幸いです。

※条件分岐はややこしいのでパス。App::uses は頻繁に出てくるのでまったく書いていません。

書き方に問題があるかどうかはさておき、書いてると時間を忘れるぐらい楽しかったし、幾つも発見があってとっても得をした。

この続きにもし興味をもたれたら CakePHP2実践入門 !


(PS)なんと、帰宅してみたらすごい数のアクセスが!!!

アクセスありがとうございます。m(__)m

UML図の書き方も完全に独学なので公開するのを少しためらいましたが、結果的にはこのブログとしては史上最大の反響でしたので、何はともあれ思い切ってよかったです。

上でも書きましたが、実際に手を動かして図にまとめる作業をする中で今まで気づいてなかったものが見えてきたりして、この経験は病み付きになりそうです。


ちょ、ツイッターであちこちで紹介してもらってたようで、うれしいやら恥ずかしいやら。こんな地味なブログをご紹介いただきありがとうございました。しかしこれはちょっとした事件だ。。。中には書籍の執筆者の方々も・・・・。ということは、ざっくりとはOKと言うことでいいのだろうか。