本当に結構パーフェクトでした – 書評「パーフェクトPHP」

最近はWebSocketで遊びたくてしかたがないfujimotoです、こんにちは。今回は、本日(2010/11/12)発売されている(はずの)待望の書籍、「パーフェクトPHP」の書評をお届けします。

僕は今週ひと足お先に献本をいただいて目を通したのですが、様々なPHP関連の書籍で「こういうことにも言及してほしいなぁ」「このサンプルを鵜呑みにされてしまうと困るかも…」というところをきちんとカバーしていたり、最新版の仕様や、PHPを使い倒しているユーザの考え方が反映されていて、今までにない書籍だな、というのが第一印象で、初心者のかたから上級者のかたまで、全員が買って損はない(少なくとも、書店で手にとってみる価値はある)一冊だと思います。

これは、いずれもPHPのヘビーユーザであり、よいところもわるいところも知り尽くしている著者のかたがたが、執筆するにあたって最初に考えたであろう「既にPHP関連の書籍がたくさんある中で、せっかく新しく書くのだから今までにないものにしよう」「今までの書籍を読んで自分たちならこうする、というところを全て書いてみよう」という思いがあったからこそなのだと思います。PHPに慣れているかたは、そんな視点で読んでみても面白いかもしれません。

折角なのでもう少し詳しく、ということで、少し長いですが目次のご紹介です。

(gihyo.jpより抜粋)

  • Part-1 PHP ~overview

    • 1章 PHP概論

      • 1.1 PHPとは
      • 1.2 Webアプリケーションの仕組み
      • 1.3 PHPの処理の流れ
  • Part 2 PHPの言語仕様

    • 2章 PHPの基本

      • 2.1 基本的な構文
      • 2.2 変数
      • 2.3 定数
      • 2.4 エラー
    • 3章 型と演算子

      • 3.1 型
      • 3.2 演算子
      • 3.3 配列
    • 4章 制御構造と関数

      • 4.1 制御構造
      • 4.2 関数
    • 5章 クラスとオブジェクト

      • 5.1 クラス
      • 5.2 インターフェイス
      • 5.3 クラスとオブジェクトの機能と特徴
      • 5.4 名前空間
      • 5.5 例外
      • 5.6 参照
  • Part 3 実践Webアプリケーション

    • 6章 Webアプリケーション入門

      • 6.1 Webアプリケーション概要
      • 6.2 ひとこと掲示板作成
      • 6.3 レガシーPHPからの脱却
      • 6.4 さらなる役割の分割
    • 7章 フレームワークによる効率的な開発

      • 7.1 開発の流れ
      • 7.2 フレームワーク作成
    • 8章 ミニブログアプリケーション開発

      • 8.1 設計とセットアップ
      • 8.2 ユーザ登録機能作成
      • 8.3 ホームページと投稿
      • 8.4 ユーザの投稿一覧と投稿詳細
      • 8.5 アカウント情報管理とログイン
      • 8.6 フォロー
      • 8.7 デザインの修正
  • Part 4 PHPセキュリティ

    • 9章 PHPで作るWebアプリケーションのセキュリティ(前編)

      • 9.1 セキュリティ概説
      • 9.2 スクリプト挿入攻撃(Script Insertion)
      • 9.3 クロスサイトスクリプティング(Cross Site Scripting/XSS)
      • 9.4 クロスサイトリクエストフォージェリ(Cross Site Request Forgeries/CSRF)
      • 9.5 SQLインジェクション(SQL Injection)
      • 9.6 セッション固定攻撃
      • 9.7 セッションハイジャック
    • 10章 PHPで作るWebアプリケーションのセキュリティ(後編)

      • 10.1 HTTPヘッダインジェクション
      • 10.2 メールの第三者中継
      • 10.3 変数汚染攻撃
      • 10.4 Nullバイト攻撃
      • 10.5 ディレクトリトラバーサル
      • 10.6 eval利用攻撃
      • 10.7 ファイルアップロード攻撃
      • 10.8 インクルード攻撃
      • 10.9 パス・ディスクロージャ
      • 10.10 コマンド実行攻撃(Command Injection)
      • 10.11 サーバ設定
  • Part5 テクニカルなPHPの活用

    • 11章 実践オブジェクト指向

      • 11.1 PHPとオブジェクト指向
      • 11.2 マジックメソッド
      • 11.3 配列オブジェクト
      • 11.4 例外
      • 11.5 PDO
      • 11.6 オートロード
      • 11.7 名前空間
  • Part 6 PHPレシピ

    • 12章 レシピことはじめ

      • 12.1 PHPマニュアルの歩き方
      • 12.2 PHPの設定
    • 13章 標準機能

      • 13.1 文字列
      • 13.2 文字コード
      • 13.3 配列
      • 13.4 正規表現
    • 14章 ライブラリとフォーマット

      • 14.1 ライブラリの利用
      • 14.3 メール
      • 14.4 日付と時間
      • 14.5 ファイルとディレクトリ
      • 14.6 XML
      • 14.7 データフォーマット
  • Appendix

    • App-A PHPコンパイルオプション
    • App-B php.ini

http://gihyo.jp/book/2010/978-4-7741-4437-5

本を読むときはまず目次から、とはよく言われることですが、この目次だけでも「パーフェクトPHP」の特徴よく現れていると思います。「6.3 レガシーPHPからの脱却」とか、ちょっと他では見かけないセクションからは著者の意気込みが伝わってきますし、非常に大事なことでありつつしばしば置いてけぼりにされがちなセキュリティについて2つの章が割かれているのは英断だと思います。ここだけでもこの書籍を買う価値があるといってもいいくらいです。

また、言語仕様の章ひとつとっても、PHP 5.3の内容が反映されているのは当然として、普通なかなか触れられない参照とその内部動作についても触れられていますし、SPLやAPC/Xdebugについても言及しているところなどは、ちょっと意地を感じてしまい、にやりとしてしまいます。また、フレームワークを実際につくりながらウェブアプリケーションについて解説する、という試みも興味深く、この書籍でPHPを勉強してみた、という方の感想を是非お聞きしてみたいと感じる今日この頃です。

あ、あと、あちこちにコラムがあるのですが、これも著者の思いが垣間見れたりして面白いです(ちょっと目次、索引に出てないのは残念ですが)。

ということで、ちょっと誉め過ぎかな?と思わないでもないですが(身内贔屓じゃないです、たぶん)、「パーフェクトPHP」というタイトルに恥じない内容になっていると思いますし、これから本格的にPHPを始めたい、なんとなくは書けるんだけど仕事で使えるレベルなのか自信がないので勉強したい、他の言語は書けるけどPHPはこれから、PHP 5.3のアップデートを反映した本を手元においておきたい、といったかたがたに間違いなくお薦めできる一冊でした。

  • タイトル: パーフェクトPHP
  • 小川 雄大 (著), 柄沢 聡太郎 (著), 橋口 誠 (著)
  • 出版社: 技術評論社 (2010/11/12)

http://www.amazon.co.jp/dp/4774144371

Author: fujimoto