今回は,開発中のPHP 5.1と,PHPでWindowsのGUIを開発できる「WinBinder」,デバッグ環境dbgについて解説する。PHP 5.1の主な改良点は,データベース共通API「PDO」と,高速化である。WinBinderはボタンやメニューなどのクラスが用意され,日本語の表示も可能だ。dbgは多くのPHP用統合開発環境に標準で組み込まれている。
PHP 5.1の開発状況
PHP5.0.0が正式リリースされてから4カ月ほどが経過し,次のマイナー・リリース版であるPHP 5.1の開発が行われている。PHP 5.1における主な改良点・機能追加は,データベース共通API「PDO」の追加と,仮想マシンの改良である。その他の機能追加については,現在,開発者用メーリングリストで議論が行われており,文字列処理の高速化などの改良が行われる予定である。上記2つの主要な改良点について以下に紹介する。
PDO(PHP Data Objects)の標準サポート
![]() |
図1●データベース共通API「PDO」の構成 |
PDOは,図1[拡大表示]に示すように各データベースに共通な機能を実装したpdoエクステンションと各データベース固有の機能を実装したエクステンション(pdo_データベース名)の2分割構成となっている。インストールする際には,この両者をエクステンションとしてインストールする必要がある。
PDO自体は高度なデータベース抽象化レイヤーを提供するわけではないが,PHP5のオブジェクト指向APIに基づき関数APIが共通化されることは,従来,データベースごとに似て非なる関数APIを使用せざるを得なかったユーザーにとってメリットとなるであろう。
VM(仮想マシン)の改良による高速化
PHPスクリプトは,実行される際にいったんコンパイルされて,VM(仮想マシン)用のバイトコードに変換された後,実行される。この仮想マシンは,PHPのスクリプトエンジンであるZend Engineに実装されている。PHP Watch第2回に記述したように,現在使用されているPHP用の仮想マシンには実行効率の点で改良の余地があることが,昨年,PHPのコアな開発メンバーであるThies Arntzen氏とSterling Hughes氏により示されている。
![]() |
図2●ベンチマーク・テスト結果 実行環境はFedora Core 1 Linux |
今回,この際の改良点のいくつかが,PHP 5.1用のZend Engine 2の実装に取りこまれるなど,複数の改良により仮想マシンの実行効率が大幅に向上した。改善効果を表すためにPHP4およびPHP5の最新版とPHP 5.1.0の開発版との比較を行ったベンチマーク・テスト結果を図2[拡大表示]に示す。このベンチマーク・テストは,ZendEngine2のソースコードに付属(ZendEngine2/bench.php)し,素数生成などのアルゴリズムや関数コールやループなどの基本的処理に関する18種類のテストからなるものでである。
この結果を見ると,PHP4およびPHP5の最新版に対してほぼすべての項目で実行速度が向上し,合計で2倍程度高速化されていることが分かる。実際のアプリケーションの実行時間の支配要因は,外部ライブラリによる処理や,データベース処理などであることが多く,こうした仮想マシンの改良がそのままアプリケーションの実行速度の大幅向上に結びつくわけではないが,PHP 5.1の実行速度が従来よりも高速化されることは間違いないであろう。
PHP 5.1のリリース時期は未定であるが,開発がこのまま順調にいけばリリース候補1版が間もなくリリースされる予定となっている。
続いて,PHPでWindowsのGUIを開発できる「WinBinder」の概要と使用方法を解説しよう。