- Amazon.co.jp ・本 (368ページ)
- / ISBN・EAN: 9784797361759
感想・レビュー・書評
-
PHPのプログラミングについて書かれた本
著者の広川類さんはPHP言語のマルチバイトエクステンションやPHP本体の開発に関わっているそうだ
また2000年から2005年に発売されたマンモス本という分厚い本にも共著という形で参加されている
徹底構築はマンモス本の最新版にあたるそうだ
序盤からセキュリティで、文字を目で追うだけでも大変だった
セキュリティの説明は、セキリティ脆弱性をついた攻撃パターンとその対策という構成がとられている
以前読んだ本にヌルバイト攻撃、XSS、CSRFの説明は掲載されていたので知っていた
SQLインジェクションについては名前だけ知っていた
ヘッダインジェクション、ディレクトリトラバーサル攻撃、ファイルインクルード攻撃、シェルコマンドインジェクションについては、この本で初めて知った
ホワイトリスト方式も初めて聞く単語だった
正直、ここまでやらないといけないのかと愕然とした
運営の段階で細かいところまで気をつけて設計を始めないといけないのは分かる
欠陥品を提供することになるのだろう
しかしPHPの設定から、PHP本体のセキュリティ強化のパッチをあてた上、上記のセキュリティを考慮してWebアプリケーションを構築していかなくてはいけないと考えるとぞっとしない
次章のオブジェクト指向についての説明も理解するのに苦労した
クラスについて分かったつもりでいたが、理解が遠く及んでいなかったことを知った
この章を読む前からPHPのオブジェクト指向について書かれたサイトを読んでいた
そのサイトでクラスやインスタンス、コンストラクタ、デストラクタ、カプセル化、継承とオーバライドまでは読んでいたので理解できた
抽象クラス、インターフェイス、ディープコピーは理解したつもりでいたけど理解できていなかったようだ
静的メソッド、オーバロード、トレイトもこの本で初めて知った
トレイトはPHPのバージョン5.4から、名前空間は5.3から実装されたそうだ
PHPに標準で実装されているライブラリSPLにもクラスが使われていて、イテレーターやカウント、例外処理はSPLのクラスで実装されているとのことだ
3章のセッションはセッションの開始やセッションの保存、破棄などの基本的なことは把握していた
しかしここでも初めて聞く機能がいくつか登場した
ガーベッジコレクションやフィンガープリントがそれにあたる
4章の認証も細かく書かれていた
HTTP標準の認証機能であるベーシック認証、ダイジェスト認証について細かく書かれている
しかしHTTP認証はログアウトの概念がないので、使われていないようだ
であれば細かく書かなくていいではないかとツッコミを入れたかった
現在標準で使われているのはHTMLのフォームから認証する方式らしい
また認証の必要なウェブサービスの機能を使ったOauthという認証方式も普及しつつあり詳しく説明されている
5章のSmartyテンプレートの説明から馴染みのある機能の説明に入った
前に読んだスーパーサンプルやまさごさんの本でも説明があったので知っていることが多く、読み流せた
6章はXMLの説明だった
個人的にRSSフィードを読むのが好きなので、XMLの説明が一番嬉しかった
XMLの種類や構造についての基本的な説明があり、要素へのアクセスや追加、正規表現を使った検索についても説明してあった
中でも嬉しかったのがXMLのフィードを読み込むソースコードだ
コードの説明もあるので非常に助かる
7章は日本語処理の説明だった
上述の通り著者はPHPでマルチバイトの文字を扱うエクステンションの開発をしている
なので他の章よりも多くページが割かれている
中でも文字コードの説明は分かりやすく詳しかった
しかしあまりにも詳しすぎて半ばからついていけなかった
HTMLの規格でもあったように業界の歴史において文字コードも混沌とした時期があったようで、様々な企業や団体が規格を定めたという経緯があり複雑になっている
文字コードの検出は面白かった
PHPのマルチバイトでの処理はバイトコードの長さで文字コードを検出しているらしい
短いコードで一致しなかった場合、次のバイトコードで一致するものを探す方式になっているとのことだ
なので短い文字列では文字コードが検出されにくく、長い文字列を入力してもらうことが対処法となるようだ
他にも携帯キャリアで拡張された絵文字などの文字コードを使う方法もソースコードと説明があった
8章はテストとデバッグについての説明だった
テストの分類から始まり、テストとデバッグに使うプログラムについての説明があった
PHPunitとSelenium、xdebugというプログラムを使いテストとデバッグを行う方法が書かれていた
このツールも初めて知った
9章のキャッシュも詳しく書かれていた
キャッシュの種類の説明、キャッシュを行うライブラリの説明があった
APCが単体のキャッシュサーバで、memcachedが分散型のキャッシュサーバらしい
apcはpeclで提供されているキャッシュ管理ソフトのようだ
peclはphpのライブラリでC言語で動作しているので動作が軽いとのことだ
memcachedはFacebookでも運用されていると書かれていた
10章はライブラリを使ってグラフやPDFを生成する方法とGoogle Graphのapiを使ってグラフを描画する方法について簡単に説明してあった
PDFのライブラリはFPDFではなく、FPDFから派生したTCPDFが紹介されている
オープンタイプフォントが使えることと、行単位での出力制御できること、表が描画できるとのことだ
クラスを拡張すればヘッダやフッタをテンプレートとして利用できるそうだ
11章のフレームワークはSlimというフレームワークが紹介されていた
CakePHPがRuby On Railsをモデルに作られたというのは以前読んだ本で知っていた
大規模開発で用いられるフレームワークで、機能が充実しているので肥大化してきていると書かれていた
そこで小規模開発に適したフレームワークであるSlimが紹介されていた
似たようなフレームワークがCodeIgnitorだろうか
機能を絞って軽快に動作し、URLをマッピングするルーティング機能を有している
同じく11章ではajaxについても説明があった
ajaxとPHPの連携に絞って解説していた
12章はウェブサービスが提供するapiを利用する方法が紹介されていた
Yahoo!の地図やAmazon、Twitter、Facebook、mixiなどの大手サイトが提供するapiを使って受け取ったデータを処理して表示するソースコードが掲載されている
ソースコードも簡単だが説明されている
このへんの説明はコードを書かないと把握できないだろうからほとんど読み飛ばした
付録は各種ソフトのインストールと設定方法が簡単に書かれていた
感想を書いていたら随分と長くなってしまった
PHPの細部まで分解し挙動について理解した上で、完璧なアプリケーションを構築していくというこの本の趣旨はタイトル通り貫かれている
しかし全体的に難しいと感じた
PHPの言語仕様やオブジェクト指向、フレームワークなどをひと通り理解した上で読まなければ理解するのに苦労する
それだけ知らない事が多く書かれていたということだろう
知らない内容の本を読むということは、それだけで頭と時間を使うということがわかった
ほとんど理解できなかったので、ひと通り積み本を読み終わったら2度ほど読もうと思う詳細をみるコメント0件をすべて表示 -
貸し出し状況等、詳細情報の確認は下記URLへ
http://libsrv02.iamas.ac.jp/jhkweb_JPN/service/open_search_ex.asp?ISBN=9784797361759