TOP比較データ> PHPの歴史
企業システムにおいて伸び悩むPHP4
徹底比較!! PHP & Java

第1回:企業システムにおいて伸び悩むPHP4

著者:ワイズノット  土橋 芳孝   2004/11/16
1   2  3  次のページ
PHPの歴史

  PHP(PHP:Hypertext Preprocessor)は、主にWebアプリケーションの開発を目的としたプログラミング言語です。数年前から急激に普及しているJava Servlet/JSPと同様に、PHPはデータベースをはじめとした様々な外部リソースと連携する動的なWebページを実現できます。

  また、PHPはオープンソースであり、大規模なオープンソース開発グループにサポートされています。そのため、バグは早期に発見、修正され、改良や言語拡張に伴うアップデートが頻繁になされています。

  PHPの歴史は1994年に始まりました。当時のPHPは、Personal HomePage toolsの略であり、その名のとおりCGIマクロ解析のためのエンジンと、当時Webページで頻繁に利用されていたゲストブックやアクセスカウンターなどを提供するユーティリティ集のようなものでした。

  その後、PHPはデータベースへのアクセス機能を取り込み、FI(Forms Interpreter)というHTMLフォームを処理するためのモジュールと合流するなどの進化を遂げ、1997年にPHP/FI2.0としてリリースされました。しかし、度重なる機能追加で継ぎ接ぎだらけとなったPHP/FI2.0の動作は、決して安定したものとは言えませんでした。

  そこでPHPエンジンの全面的な再構築が行われました。PHP/FI2.0との互換性を捨てることによって、データベースへのアクセス機能の強化、APIやプロトコルに対する機能の増強、各種文字コードへの対応、パフォーマンスの大幅な改善といった成果をあげ、1998年にPHP3.0がリリースされました。PHPがPersonal HomePage toolsからPHP:Hypertext Preprocessorと名前を変えたのもこの時で、PHP3は急速に普及しました。


Zendエンジンの登場

  2000年にリリースされたPHP4では、実行エンジンとしてZendエンジンが採用され、50倍の速度向上を実現しました。これに加え、セッション管理、バッファリング、標準クラスライブラリ、マルチバイト対応といったPHP3で模索されてきた様々な周辺技術がPHP4で統合されました。これによってPHPは飛躍的な進化を遂げ、現在に至っています。

  PHPに革命とも言える劇的な変化と発展をもたらしたのはZendエンジンです。Zendエンジンは、Zend Technologies社の創設者であるZeev Suraski氏とAndi Gutmans氏によって開発され、現在もZendエンジンの改良は続けられています。このZendエンジンは下記のような実行プロセスで動作します。


Zendエンジン
  • Webブラウザーによって、Webサーバーが呼び出される。そのリクエストは、PHPのWebサーバーインターフェースで受け付けられる

  • Webサーバーインターフェースは、Zendエンジンを呼び出す

  • Zendエンジンは、WebサーバーのハードディスクよりPHPのコードを取り出し、ランタイムコンパイラに引き渡す

  • ランタイムコンパイラは、PHPのコードをコンパイルして中間コードを作成し、エグゼキュータに引き渡す

  • エグゼキュータは、Webブラウザーに表示するHTMLを生成し、Webサーバーインターフェースに引き渡す。ランタイムコンパイラより引き渡された中間コードを実行する際に関数などのモジュールを呼び出す必要がある場合、エグゼキュータはモジュールインターフェースを介して関数などのモジュールを利用する

  • Webサーバーインターフェースは、WebブラウザーにHTMLを送信する


  今年の7月には、Zendエンジン2を搭載したPHP5がリリースされました。PHP4の弱点を克服したPHP5は、オープンソースの普及にともない更なる発展が期待されます。PHP5につきましても後述しますのでご期待ください。


1   2  3  次のページ


ワイズノット
著者プロフィール
株式会社ワイズノット  土橋 芳孝
以前はJavaを利用したWebアプリケーション開発とオブジェクト指向設計を得意としていたが、ワイズノットに入社以来、PHPの魅力にとりつかれる。現在はワイズノットのプロジェクトマネージャーとして、PHPをはじめとしたオープンソースの普及に力を注いでいる。


INDEX
第1回:企業システムにおいて伸び悩むPHP4
PHPの歴史
  PHP4の特徴
  Javaの特徴