PHP4徹底攻略 改訂版」BOOK REVIEW
書評者:斉藤 栄一 様

 初版からPHP4版まで1年、本改訂版はそれからはや2年というスパンは意外に思える。 初版が出た99年は、私の仕事においては、PHP3での開発がビジネスになりはじめた年でもあり、 出版後すぐに購入した。また当時専門学校で担当していた「WEBアプリケーション開発」の授業を、 本書を教材に行うことを決めた。定番というより、当時ほぼ唯一の市販の参考書として、 本書の採用は当然のことでもあった。

 PHP4が気にならなかったわけではないが、その後も長い間PHP3に関わり続け、 ほぼすべてのPHP開発案件をPHP4で処理するようになったのは、ほんの最近、 今年に入ってからのことである。その後もマンモス本が定番であり続けたことは間違いないが、 WEBソリューションとしてのPHPの評判はじりじりと上がり続け、参考書の種類も同様に増え続けている。

 そんななかで、本書が定番であり続ける条件とは何か。われわれが本書に求める役割とは何か。 いくつの観点から本書を評価することにより、それを探ってみたい。

1.入門書として

 言語に関する本というと、非常にたくさんの入門本にあふれている。言語を身につける、あるいは、 ちょっとやってみようという観点から書かれているものが多い。しかし、本書はそういった、 ごく入門的な見地から書かれている部分はほとんどないように見える。もちろん入門的解説はあるが、 初めて言語に触れる人間向けには書かれておらず、むしろある程度C系統の言語をマスターした人間向けに書かれているようだ。
 本書の目指すところは、読者がPHPをマスターするかどうかにかかわらず、 本書のみによって「実用的」スクリプトが書けるようになることではないだろうか。 それはPHPの実用性をまさに体現しているのかもしれない。

 また、中篇のデータベース連携については、必要かつ最小限の記述となっており、 常時両手に参考書がなくとも良いようになっている。

2.実用書として

 オープンソースの常として、ネットワークからの情報が豊富ということがある。 PHPにおいては特に、ボランティアなどによる強力な翻訳プロジェクトのおかげもあり、 書籍による網羅的リファレンスマニュアル等の資源の必要性はあまりない。むしろこういった環境でこそ、 書籍の使い勝手に対し工夫されたリファレンスの役割は重要である。本書の初版からの文法リファレンス、 関数リファレンスにおけるインターフェースは、網羅的な精密さよりも、要所に小さなサンプルスクリプトを織り込んで、 直感的理解を助ける形式であり、本改訂版でも基本的に踏襲されている。開発実務において、 参考書を使用する上で重要なことは、主に時間的な理由から、知りたいことが連想的に配置されているかどうかと、 直感的に理解しやすいかどうかである。

3.PHPの変遷と本書

 改訂版になったことで、関数リファレンスからPHP3との互換を示すマークが消えた。 時期を得ているといえばそのとおりであるが、その点においてのみ実務的には前の版がまだ欠かせない。
 PHPは数ある言語の中でも、特に変化の激しい言語である。 PHP4においてドラスティックに変化したのが直接の原因であろうが、 やはりWEBテクノロジーと表裏一体となっているところから来るものであろう。
 前文でも述べたが、こういったPHP3からPHP4への推移は、 開発現場とは多少流れる時間の差異を感じてきた。しかし、むしろその感覚は、 肯定的に捕えたい。本書はこれからも、そういった差異を読者に感じさせ、 実用的な新鮮度を保っていってほしい。

最後に

 幾多の定番本と同様、版を重ねるにつれ本書も分厚くなってくる宿命にあるのだろうか。 職場における実用書に関しては常日頃、頭に入らなければ意味がない、というポリシーの元、 つん読書籍をできるだけ排斥するようにしている。休日の書斎における現状の裏返しともいえる。 今のところ、弊社開発事業部では、前版も、「実践編」も、手垢にまみれた真っ黒な状態で、その活躍を物語っている。 おそらくこのぴかぴかの改訂版も、近々同様な目にあうことになるであろう。




書評者:清水 宏行 様

 本書は、PHP言語の初学者向けの本として書かれています。 同時にリファレンスとしても使えることを意図しています。 学習とリファレンスという観点から見た時、改訂版になって、 より学習者のことを考えた良い書籍になったと思います。

1. PHP4によるWebサイト開発の入門書

 本書は、プログラミング言語を習得するだけの本ではありません。 Webサイトを開発するために必要な基礎知識をPHPという言語に 軸足を置いて書いた書籍です。このことは、書名に「Web DBプログラミング徹底入門」 が添えられていることからも分かります。
 そのため、PHP言語、PostgreSQL DBMS、Apache Webサーバ、 そしてそれらのインストールや設定を含めた広範な内容を扱っています。 Webサイトを構築するソフトウェア技術者であれば、基本的に知っておきたい内容になっています。

2. 対象読者は言語経験者

 本書の言語仕様の説明は、初学者がまず知らなければならないことをソースコードと ブラウザなどの表示結果を使って解説しています。丁寧な解説を心がけていると思いますが、 初めてプログラミング言語を学習する方に理解できるほど平易に書かれているわけではありません。 また、言語仕様を詳しく解説することを意図していないと思われますので、 プログラミング言語自体に興味を持つ人にも向いていません。PHP以外の言語を習得している方が、 PHPの文法と提供されている関数を知ってWebサイトの開発を始めるのにちょうど良い書籍になっています。
 データベースに関しては、主に「第2部 PHPとデータベース連携」で解説しています。 PostgreSQLのコマンドやソースコードを理解するのに必要なSQL構文が最初に説明されていますが、 初めてリレーショナルデータベースを学ぶ方に理解できるほど丁寧に説明されているわけではありません。 言語経験者であれば、データベースの基礎知識は持っているでしょうから、問題なく学習できると思います。

3. ソフトウェアは概念とソースコードで学ぶもの

 本書は、多くのソースコードをもとにしてPHPによるソフトウェアの設計・実装方法を解説しています。 初学者にとっては小さいと言えども1つのWebサイトを作るためのソースコードを読むのは大変参考になります。 セキュリティを高めるためのコーディング、保守性を高めるための設計、Apacheなどのサーバソフトウェアの 設定上の注意点などが書かれていて、ソースコードで学ぶことのメリットと重要性を感じさせてくれます。
 一方、ソフトウェアの理解には、概念の学習も重要です。オブジェクト指向や リレーショナルモデルなどの概念の説明は、いくらか力を抜いているという印象があります。 紹介されている参考文献などで補うのが良いでしょう。

4. リファレンスとしての価値

 改訂版では、文章やタイトルが推敲されて読みやすくなっています。また、 スーパーグローバル変数を使ったサンプルプログラムに書き直されています。 他にも良い点はあるのですが、改訂版で最も目を引く箇所は、「第3部 PHP関数リファレンス」 ではないかと思われます。
 第3部では、各節で紹介する関数群ごとに、PHP構築時に指定するオプションやphp.iniファイルに 記述できるオプションの説明が追加されています。また、節によっては、関数名が変更されていますので、 新旧の関数名が対応表になっているのも便利です。さらに、サンプルプログラムが増やされ、 関数の使い方を理解し易くしています。リファレンスとしての価値は上がったと言えます。 省略可能な引数を省略した場合のデフォルト値が書かれていれば、さらによかったと思います。

5. より良い書籍をめざして

 入門書であることを考えますと、コーディングスタイルの統一、deprecatedになったHTMLタグは極力使わない、 ソースコードの校正を十分に行う、将来廃止される可能性のある言語構文は使わないなど、改良の余地があります。 次の改訂の際に盛り込んでいただけることを期待しています。




書評者:奥村 善仁 様

本書はWebDB開発者向けサーバーサイドスクリプトであるPHP4の初級、中級者用教科書の定番と言われている。 今回はPHP4の改訂版に当たるが前著のクオリティはそのまま保たれている。本を手にとると、 最初の印象はずいぶん分厚くなったという印象を受ける、事実100頁以上の加筆が見られた。 PHP4.2への機能の追加とそれに付随する技術の進歩を織り込むには必要な加筆なのだろう。 これからPHPを勉強する者にとっては十分な内容と言える。
 本書は四部構成となっており、第一部でサーバーサイドスクリプトであるPHPについての説明を、 第二部では、著者自信が開発に携わっているフリーのデータベースPostgreSQLを題材に具体的なWebDBプログラムを作成し、 詳しく説明している。第三部では頻繁に使われるPHPの代表的な関数をカテゴリー別に紹介している。 第四部では一般的なインストール方法を解りやすく説明している。

 第一部をざっと読み進めると、構成は前著と同じに見えるが、ソースと本文が区分けされた事や色の使い方、 注釈の位置の変更でかなり見やすくなった様に思う。読み進めると随所に加筆の跡が見られるが 前著の可読性のよさを保ちうまくまとめている。変更された箇所の中で目立つ点といえばPHP4.2.0以降に 採用されたフォーム変数のスーパーグローバル化について取り上げている事、これによりサンプルソースと 説明に変更点が見られた。この辺り改訂版と言えども書き直されたと思える程の配慮が感じられた。 実際に著者は十分に内容を吟味した結果うまく加筆と言う形にまとめたのだろう。近頃のPHPの入門本の中で PHP4.2.0以降について取り上げた本を見かけない事を考慮すると著者の健在ぶりが伺える。
 第二部では前著にひき続きWebDBの定番と云われるPostgreSQLを題材にしたソースプログラムを紹介し、 入門者にとって分かりやすい説明がなされている。PHPを使用してサーバーサイドスクリプトを 習得しようとする者にとって本書のサンプルは良いお手本になるだろう。只、サンプルを そのまま利用するというよりもクラスと継承の使い方、クエリーの組み立て方、データベースへの アプローチ方法の一例として読み取る事を、お勧めする。あくまでも入門者向けに引用したプログラムであり、 そのまま流用する目的で紹介された物ではないという事を読者は読み取るべきである。 

 第三部では代表的な関数をカテゴリー別に大別し、リファレンス形式で紹介している。 前著に比べると84頁加筆されており、本書の中では最も修正された箇所となっている。 前著のバージョンPHP4.0.1からPHP4.2.2の間に多くの関数拡張が行われた事が伺える。 全てのカテゴリーにおいて収録関数が増えており、サンプルソース、説明にもより分かりやすい説明がついた。 それぞれのカテゴリーにはPHP構築オプションが紹介されておりリファレンスとしてより充実したものになっている。 今回取り上げられたカテゴリーの中で、PDF関数、SAX(XMLパーサ)関数・DOM関数は目だって加筆されており、 今後も増えるであろう事が予想される。興味のある方には少々物足りない感はあるかも知れないが鳥瞰するには十分である。 又、前著では取り上げなかったassertion関数が取り上げられ、「エラー処理およびログ関数」というカテゴリーとして挙げられている。 開発者にとっては非常に重要な項目でありPHP4.2.2で十分利用できる機能となっている。 今回加筆された事を嬉しく思う。

 第四部では、PHP、Apache、PostgreSQLでWebDBを構築する手順を説明している。 前著にもあったソースからコンパイル&インストールする方法だけでなく、VineLinuxを使ったRPMによる インストール方法を推奨する事でより初心者に分かりやすい説明を行っている。又、利用者の増えてきた MicrosoftWindowsへのインストール方法についても詳しく述べている。




書評者:柘植 英一 様

PHP徹底攻略という名前からすると、PHP初心者に敷居が高そうなイメージを与えそうですが決してそうではなく、 この本は例題を交え優しく丁寧にPHPについて説明しているため、初心者の方にとてもわかりやすい作りとなっているので、 これからPHPを始めていく方にお薦めできる本と言えます。
自分もPHP3の時代のものからPHP4のものまで長い間愛用させて頂いているので、 今回このPHP4徹底攻略という本の改訂版の書評をさせていただける機会を与えて頂いた事に感謝致します。

この本の特徴となるデータベースとの連携に関しては、PostgreSQLを利用したデータベースを連携させた WEBアプリケーションの作成について、こちらも簡単なサンプルで説明を行い、まずはデータベースとは何かから始まり、 PostgreSQLの利用方法、テーブルの作成、そして問い合わせ方法と、PostgreSQLに触った事のない方でも一つ一つ確実にステップアップでき、 PostgreSQLの初心者入門書としても良い教本になると思います。

また現在もその後にある関数リファレンスに関しては参考書の様に使用させて頂いているのですが、 今回から構成が変更され、今までその説明されている関数のサンプルについては用意してあったものとなかったものがあったのですが、 そのものではなく参考になるものに関しては注釈で類似したサンプルの紹介がされてあったりと便利に使い勝手が良くなっていると思います。

インストールに関しては大きく変わった部分として、以前はソースよりコンパイルを行う方法のみでしたが、 今回からはRPMからのインストール、ソースからのインストール、最後にWindows環境でのインストールの三種類の インストール方法が挙げられている点で、自分はソースからインストールを行う事が多いのですが、 比較的簡単にできる他のインストール方法なども勉強する事ができ、この点でも初心者の方にとって便利になったと思います。

気になった点では、セッションの管理について述べられている部分があるのですが、 以前よりも詳しく書かれてはいるのですが、「詳細は実践編で」とこの章の始めに書かれてはいますが、 キャッシュに関してデフォルトの設定ではキャッシュがされないと説明され、 キャッシュした場合は次の設定が有効となると説明されているのに、 ではキャッシュしたい場合は何と設定すればよいのかが書いていないので、初心者の方で疑問に思われる方も多いかと思われます。 あいまいに難易度が高くなると説明するのではなく、全体を通して難易度が高くなるのであればその一部分で「詳細は実践編で」 と説明されても宜しかったのではないかと思いました。

ここまで説明させて頂いた部分は以前のものとおおまかな部分ではほぼ同じ内容であり、 全体を通して今回PHP徹底攻略の改訂版として注目したい点としましては、PHP4.2に対応している点が挙げられます。 PHP4.2よりセキュリティの設定で大きな変更となった、Register_globalsがデフォルトでoffとなるなど今までのプログラムが そのままでは動作しない部分が出て来ている点についても触れられていて、 今後のPHPの方向性を見据えた推奨される記述の方法が挙げられており、単なるPHPという言語の解説本ではなく、 今からPHPを学ぶ方達へ向けて今後のPHPの方向性を考えた上での説明方法にとても感心致しました。

PHP開発者にとってはもう少し・・・というもの(そういう方は実践編へ!!)かもしれませんが、 PHPを初めて学ぶ人にとって(自分もお世話になっていましたので)お薦めできるとても良い一冊であり、 この本を読んで是非PHPおよびPostgreSQL入門のきっかけとなって欲しいと思います。




All Rights Reserved, Copyright (C) 1999-2002 Japan PostgreSQL Users Group
staff@postgresql.jp
$Id: php_tettei.html,v 1.2 2002/11/18 16:22:46 kawaml Exp $