December 27, 2005
読んだ。今回は結構ちゃんと読んだ。この本は、初めてのPHP「5」じゃなくて、「初めてのPHP」5・・・でした。PHPバージョン5の解説本ではなくて、他の言語を使っている人がPHPという言語を知るための本です。しかし同時に、この本はPHPらしくもあり、オブジェクト指向に対応したPHP5を学ぶに必要なエッセンスが含まれていると思った。
何がいいかというとサンプルソースと演習問題の答えが渋いです。出てくるコードは、MVCモデルを強く意識する構造でできています。
MVCモデル・・・見た目のロジックと、データを扱うロジック、そしてそれらを制御するコントローラーという3つのロジックに分離することができるというプログラミングモデルですが、これは、Webアプリにおけるオブジェクト指向プログラミングの基本概念になっています。
MVCモデルというと、こういうモデルを強制してくれるフレームワークを使うことを想像しがちですが、あくまでもプログラミングモデルでしかないわけですから、フレームワークありきではなくて、ユーザーがもっと意識して組み立てられなくては意味がないわけです。そこが意識できないとフレームワークを使った瞬間にフレームワークに使われてしまうと思います。
このサンプルは、普通に関数を分けることでMVCモデルを実現しています。MVCのサンプルとしても最適だと思いました。
PHP5というのは、PHP4からオブジェクト指向を本格的に取り込んで進化したバージョンなわけですが、ちょうどMojaviなどのフレームワークや、Smartyテンプレートエンジンと言った、ちょっと重たいモジュールを利用して効率的に開発を進めることを本格的に慣れていかねばいけないタイミングなんでしょうね。
そういう意味で、知っておかねばならない基本的なモデルってのを意識させてくれて、PHPとして、すごく象徴的だなぁと強く思いました。
またセキュリティを強く意識した作りになっているのが良いですね。PHPやServletと言ったWeb開発言語(?)の基本を学ぶと言えば、フォーム値の受け取り方やセッション変数、DBのつなぎ方などがポイントなわけですが、そこで初心者向けの基本を記しつつも、しっかり値チェックや、入力値をチェックして、セキュリティホールを作り込まないようにするサンプルが示されています。
この辺が、実践的にそのまま使えるオライリー本の特徴と言ったところでしょうか。
ところで、PHPで感じたこと、
・良くも悪くも強くC言語を意識させられるような。
・なんでも配列に入れてしまえってのが、シンプルかつ強力なPHPの良さだったなぁと。JavaScriptのなんでもオブジェクトみたいな感じで、シンタックスのシンプルさが多くの人に支持される理由かなぁ。(あとは関数一発で面白げなところ。mingとか、simpleXMLとか。)
・PECL(C言語で作られた拡張機能のライブラリ、JakartaとかCPANのようなもの)と、PEAR(PECLの兄弟でスクリプトライブラリ。CPANのPHP版)こそ拡張性の生命線。
iPodの動画変換スクリプトはVBスクリプトで書いたんですが、中身を改めてみると、XMLパーサーと、ファイルシステムオブジェクトと、Dictionaryオブジェクト(ハッシュテーブルみたいなもの)しか使ってないんですよね。もうイマドキ、redim preserveとか使ってらんないーとか思って、Dictionaryオブジェクトに逃げてしまったんですが、そういうのがPHPでは念頭に置かれて、すごく簡単に書けるようになっているわけですね。
イマドキのPHPを勉強するなら、この本を読んだ後に、各主要フレームワークを押さえていくようにすると良いと思います。
PEAR Authorな人のリストから追って、こちらのPHPのお約束っぽいところを書いてくださってるページにたどり着きました。ここで紹介している本は、こちらのQ/Aの前半半分までを詳しく押さえていると思いました。
Switch PHP
------------------
追記:次に読み始めたのはこの本で、上記サイト言及の後半はこちらの本でどうぞ。
まるごとPHP!(Vol.1)をアマゾンで見てみる
この本を読み出したら、そろそろなんか作りましょうって感じですかね。