パーフェクト PHP

パーフェクト ピーエイチピー

パーフェクト PHP の表紙
プログラミング
著者:
小川雄大 / 柄沢聡太郎(オガワ, カツヒロ / カラサワ, ソウタロウ)
出版社:
技術評論社
出版日:
2010年12月
ISBN:
9784774144375
シリーズ:
Perfect series
在庫:
在庫あり
4.38(24 件 / 楽天ブックス)
初級者向け
PHPプログラミングセキュリティWeb 開発アプリケーション開発コーディングスクリプティングサーバーサイドプログラミング言語開発入門

なぜ注目されているか

言及数
83位
総合325位 ↑ 2 ランクアップ 言及 37 件・うち記事 29 件を掲載
01120222023202420252026

書籍紹介

PHP のセオリーを徹底解説。基本から Web アプリケーション開発、セキュリティまで完全網羅。

技書の森解説

PHP で動くものは作れるようになったのに、フレームワークの内側で何が起きているかは説明できない。『パーフェクト PHP』 (小川雄大 / 柄沢聡太郎 / 橋口誠 著、技術評論社、2010 年 11 月刊) は、その段階にいる PHP 開発者に向けて、言語仕様の整理から MVC フレームワークの自作、ミニブログアプリケーションの開発、Web アプリケーションのセキュリティまでを 1 冊で扱う解説書です。技術評論社の Perfect series (シリーズ番号 03) として刊行され、版元は対象読者として PHP で仕事をしているエンジニアと、PHP で Web アプリケーション開発をしているエンジニアを挙げています。版元ドットコムと書店の書誌に登録された紹介文では「PHP のセオリーを徹底解説。基本から Web アプリケーション開発、セキュリティまで完全網羅。」と要約されています。

6 部 14 章の構成、言語仕様からフレームワーク自作とセキュリティへ

構成は全 6 部 (Part) 14 章と Appendix です。Part 1 (1 章 PHP 概論) では PHP の歴史と Web アプリケーションの仕組み、Linux (CentOS/Fedora / Debian/Ubuntu) / Mac OS X / Windows へのインストール、モジュールと CGI / CLI という処理の流れを押さえます。Part 2 (2〜5 章) が言語仕様で、変数 / 定数 / エラーから、型と演算子、制御構造と関数、クラスとオブジェクト、インターフェイス、名前空間、例外、参照まで進みます。Part 3 (6〜8 章) は実践 Web アプリケーションで、6 章のひとこと掲示板作成とレガシー PHP からの脱却でロジックとビューの分離を経験し、7 章でフレームワークそのものを作ります。フロントコントローラと .htaccess、Request クラス、ルーティングと Router クラス、Response クラス、データベースアクセスと PDO、Session クラス、Controller クラスと View クラス、CSRF 対策、ログイン状態の制御という順で部品を組み上げ、8 章ではそのフレームワーク上にユーザ登録 / 投稿 / フォローの機能を持つミニブログアプリケーションを開発します。Part 4 (9〜10 章) がセキュリティ、Part 5 (11 章 実践オブジェクト指向) がマジックメソッド / 配列オブジェクト / 例外 / PDO / オートロード / 名前空間、Part 6 (12〜14 章) が PHP マニュアルの歩き方と PHP の設定、文字列 / 文字コード / 配列 / 正規表現の標準機能、PEAR と PECL を含むライブラリの利用、メール / 日付と時間 / ファイルとディレクトリ / XML / データフォーマットです。

フレームワークを自作して MVC の裏側を知る意味

Web フレームワークを使うだけなら、ルーティングの設定やコントローラの書き方を覚えれば済みます。しかし、URL がどのクラスのどのメソッドに届くのか、リクエストがどこで検査され、セッションがどこで復元され、ビューに値がどう渡るのかを知らないままだと、フレームワークの想定から外れた要件に当たった瞬間に手が止まります。本書の 7 章が取る、小さなフレームワークを自分で書くという方法は、この構造を部品ごとに理解する近道です。フロントコントローラで全リクエストを 1 か所に集め、Router が URL を振り分け、Controller が処理して View に描画を委ねる MVC の流れを、Request / Response / Session / DbRepository といった自作クラスで組み立てるため、既成のフレームワークを使うときにも設定の裏側で何が動いているかを読み解けるようになります。版元の概要も、フレームワークなどを利用した Web アプリケーション開発の解説では「内部処理が裏で何をしているのかを掘り下げて解説」していると説明しています。7 章で使ったオートロードや PDO を 11 章の実践オブジェクト指向で改めて扱う構成のため、部品を オブジェクト指向 の言語機能の側から復習することもできます。版元プロフィールによれば、刊行時点で小川雄大はアシアル株式会社のアーキテクト / コンサルタントで日本 Symfony ユーザー会の設立者の 1 人、柄沢聡太郎はグリー株式会社のインフラエンジニアで国産 PHP フレームワーク Ethna のコミッター、橋口誠は menue 株式会社のエンジニアであり、フレームワークの内側を日常的に触っている書き手がそろっています。

2 章分のセキュリティと、2010 年時点の前提

9 章と 10 章は PHP で作る Web アプリケーションのセキュリティに充てられ、前編でスクリプト挿入攻撃、クロスサイトスクリプティング、クロスサイトリクエストフォージェリ、SQL インジェクション、セッション固定攻撃、セッションハイジャックを、後編で HTTP ヘッダインジェクション、メールの第三者中継、変数汚染攻撃、Null バイト攻撃、ディレクトリトラバーサル、eval 利用攻撃、ファイルアップロード攻撃、インクルード攻撃、パス・ディスクロージャ、コマンド実行攻撃、サーバ設定を項目ごとに扱います。フレームワーク自作の章で CSRF 対策やログイン状態の制御を実装した後にこの 2 章を読むと、対策が個別の決まり文句ではなく、リクエストとセッションをどこで検査するかという設計の問題だと理解できます。一方で本書は 2010 年 11 月刊で、インストール手順が CentOS/Fedora / Debian/Ubuntu / Mac OS X / Windows を対象にし、ライブラリの利用の章で PEAR と PECL を取り上げているように、刊行時点の PHP と周辺環境を前提にしています。対象とする PHP のバージョン番号は版元の紹介文や公開目次に明示されていないため、ここでは断定しません。刊行後に PHP へ加わった言語機能や周辺ツールの変化は当然含まれないので、言語リファレンスとしては公式マニュアルとの併用が前提です。

元が取れるのは、PHP の入門書を終えて動くものは作れるようになり、フレームワークを使いながらも内側が見えていない開発者です。版元が挙げるとおり、仕事で PHP を書いているエンジニアが、言語仕様の穴を埋めつつ設計とセキュリティを体系的に押さえ直す用途にも合います。逆に、これから PHP を初めて学ぶ人には、言語仕様の Part 2 が網羅的な分だけ密度が高く、最初の 1 冊としては重いでしょう。特定のフレームワークの使い方をすぐに知りたい人や、刊行後の PHP の新機能を追いたい人にも、本書は目的と合いません。それでも、フレームワークを一度自分で組み上げて MVC とセキュリティの裏側を実装を通じて理解したい PHP 開発者にとって、2010 年刊であることを承知したうえで読む価値が残る 1 冊です。

言及した記事 (29 件)

この本は技書デッキのカードです (攻撃 8 / 敵に弱体 1) 図鑑でこの本を見る

この本に興味がある方におすすめ

関連する本

関連記事

関連用語

共有: