特集
2004/05/21 16:45 更新

UNIX USER 2004年6月号「実践! 最新PHP 5」より転載:
Part 1 待望のPHP 5リリース (1/2)

開発スピードを上げるなどで、利用が広がっているスクリプト言語PHP。PHP 5で新たに実装された機能と、改善された点について解説する。これまで、急速に人気を博し、普及してきたPHPの魅力を理解していただければと思う(全4回)。

UNIX USER 開発スピードを上げるなどで、利用が広がっているスクリプト言語PHP。そのPHPの最新版PHP 5が間もなくリリースされる。本特集では、オブジェクト指向への本格対応、SOAPの標準サポートなど、新たに実装された機能を解説するとともに、実際にスクリプトを動かし、具体的にその利点を見ていく。

 Part 1では、PHP 5が誕生するまでの軌跡をたどりながら、PHP 5で新たに実装された機能と、改善された点について解説する。これまで、急速に人気を博し、普及してきたPHPの魅力を理解していただければと思う。

INDEX Part1 待望のPHP 5リリース
1. PHPの生い立ち
2. PHP 4との相違点


PHPの生い立ち

 これまで、スクリプト言語の代名詞であったPerl。しかし、その地位を脅かす存在にまで成長・普及している言語が存在する。それが、本特集で取り上げるPHPである。個人サイトだけでなく、大規模な商用サイトにも普及し始めたPHPが、どのようにして誕生したのかを解説する(図1)。

zu1.jpg

図1 PHPの歴史(クリックで拡大します)

スクリプト言語の革命児〜PHP/FI

 1995年、Webサイト上に配置していたレジュメへのアクセス解析を行う目的で、Rasmus Lerdorfの手によって作られたPerlスクリプトの組み合わせが、PHPのルーツに当たるPHP/FI※である。Rasmusは、このスクリプト群に、PHPの名前の由来でもある「Personal Home Page Tools」という名前を付けた。

 Rasmusはその後、データベース操作などのWebアプリケーションの開発に必要な機能を実装するため、PHP/FIをC言語で書き直し、ソースコードを一般に公開することを選択した。このバージョンが、PHP/FI 2.0に当たる。

 当時、動的コンテンツを作成するには、Perlの習得が必須であった※。コンテンツのほんの一部だけを動的に変更しようにも、その条件はまったく変わらなかった。PHP/FIは、スクリプト言語でありながらも、C言語のような文法、フォームの自動解析、SSI※のようにHTMLに埋め込むスタイルなどの特徴を備えていた。これらが、動的コンテンツを開発したいと考えていた潜在的ユーザーの心をとらえたのも、自然なことといえるだろう。

 PHP/FI 2.0は、全世界で5万以上のドメインにインストールされたという報告がある。PHP/FI 2.0が、Webアプリケーション開発の敷居を高くしていたPerlの呪縛から解き放った功績を考えれば、至極当然の結果だといえよう。

PHP/FIから生まれ変わった〜PHP 3

 PHP/FI 2.0は、Webアプリケーション開発の敷居を低くすることに成功した。だが、理想的なスクリプト言語というには、柔軟に機能を拡張できない点や、データベースの選択肢が少ない点、そして、文法のあいまいさなど、まだまだ残されていた課題があった。

 これらの問題を解決したのが、Andi GutmansとZeev Suraskiの両氏である。彼らは、PHP/FI 2.0を使ってeコマース※を構築しようとしたが、いまのままでは力不足であると判断した。そして、両氏によってスクリプト言語の要の1つであるパーサー※が書き直された。

 新しいエンジンは、PHP/FI 2.0との互換性を極力維持しつつ、オブジェクト指向的な文法のサポートなど大きく生まれ変わり、PHP 3.0と名付けられた。1997年、PHP 3.0はPHP/FI2.0の後継バージョンとしてアナウンスされた。このとき、「PHP」の語源が、PHP/FIの由来である「Personal Home Page Tools」から、「PHP: Hypertext Preprocessor」という再帰的な頭字語に変更されている。

 PHP/FI 2.0では5万以上のドメインにインストールされたが、PHP 3.0ではその記録を塗り替えている。PHP 3.0は、全世界の10%のWebサーバーにインストールされたという報告がある。

Zend Engineの誕生〜PHP 4

 1998年冬。PHP 3.0の公式リリースから間もなく、PHP 3.0誕生のキーマンであったAndiとZeevの両氏は、PHPの核となるプロセッサ部分※を書き直し始めた。両氏は、PHP 3.0の仕様では、それまで以上の機能拡張やパフォーマンス改善が困難だと判断し、柔軟性のあるスクリプトエンジンが必要だと考えたからである。

 両氏によって開発されたスクリプトエンジンは、1999年半ばごろに紹介された。その後、このエンジンを搭載した新しいPHPであるPHP4.0が、2000年5月に発表された。

 スクリプトエンジンは、設計者であるZeevとAndiの名を取って、「Zend Engine」と名付けられた。この名前でピンときた人もいるかもしれないが、彼らは現在、PHPの開発支援アプリケーションの開発・販売を行うZend Technologies社(http://www.zend.com/)を設立し、精力的な活動を展開している。

 PHP 4.0は、Zend Engineの導入によって、大幅なパフォーマンスの改善が施されているほか、Webサーバーの選択肢が増えた点や、出力のバッファリングが柔軟になった点など、PHP3と比べると大幅にてこ入れされた。

 2004年4月15日時点で、PHP 4.3.6がリリースされている。PHP 4は、バージョン4.3.0で機能がFixされており、以降はバグフィックス版の提供が行われているのみである。

スクリプト言語の理想形へ〜PHP 5

 2004年。PHP 4の後継バージョンとして、ついにPHP 5がリリース予定である。

 2003年7月からベータ版が公開されており、2004年4月にRC2が公開されている。本誌が店頭に並ぶころにはリリースされているかもしれない。PHP 5では、さらなるオブジェクト指向プログラミングの実現に向けて、さまざまな機能が拡張・改善されている。


このページで出てきた専門用語
●PHP/FI
PHPの前身となったスクリプト言語で、現在もPHPの開発に携わっているRasmus Lerdorf氏が開発。Perlで書かれていた。PHP/FIという名前は、「Personal Home Page Construction Kit/Form Interpreter」の略称である。

●動的コンテンツを作成するには、Perlの習得が必須であった
現在ではPHP、Ruby、Pythonなど、数多くの選択肢が用意されているが、それ以前はPerlが主流であった。当時、無償で入手できるCGI用の言語がPerlであったことが主な理由と考えられる。

●SSI
「Server Side Include」の略。HTMLの一部に特定のコメント文などを記述しておくことで、サーバーから送信する際に動的に置換される仕組み。主な利用方法として、CGIの実行結果や日付などを挿入することができる。

●eコマース
インターネット網などを利用した商取引の形態を指す。オンラインショッピングサイトなどの一般消費者を対象としたものを「BtoC」(Business to Consumer)、企業間の取引を対象としたものを「BtoB」(Business to Business)と呼ぶ。

●パーサー
構文解析(テキストデータなどの内容を目的の用途に応じて変換するための分析)を行うプログラム。XMLなどのテキストデータにも必ずパーサーが存在する。

●プロセッサ部分
スクリプトエンジン。パーサーによって解釈されたデータを用いて、実際に処理を行うプログラム。Javaにたとえた場合、Java VMに相当(パーサーはJavaコンパイラに相当)する。


      | 1 2 | 次のページ

[照井進吾,UNIX USER]

Copyright(C) 2010 SOFTBANK Creative Inc. All Right Reserved.