今回は,開発中の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」の構成
 PHPウォッチ第8回で紹介したデータベース用共通API「PDO(PHP Data Objects)」が,予定通りPHP 5.1に追加される模様である。PDOは,現在,PHPエクステンションのライブラリPECLで公開されており,データベースとしてSQLite,PostgreSQL,MySQL,Oracle (OCI),Firebird,ODBCをサポートしている。

 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
 両氏は,仮想マシンを改良するPHP4.3用の実験的なパッチを公開したが,ソートなどのベンチマーク・テストの結果が2倍程度に高速化される結果が得られている。

 今回,この際の改良点のいくつかが,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」の概要と使用方法を解説しよう。