今回は,PHPの次期版にあたるPHP6関連の話題を中心に,PHP関連情報について紹介する。
PHPリリース関連情報
PHP開発関連の話題として,PHPのリリース関連情報を紹介する。
PHPでは最新の開発版において新たな機能追加が行われ,それ以前の複数のバージョンでは基本的にバグ修正などのメンテナンスが行われている。複数のバージョン間の関連と主な変更内容を図1に示す。現在,PHPの最新バージョンはPHP 5.0.5であるが,まだまだユーザーが多いPHP 4系についてもメンテナンスが継続されており,PHP 4.4.0が最新バージョンとなっている。
一方,PHP 5.0の次のバージョンとしてPHP 5.1系が開発され,PHP 5.1.0が既にリリース直前の状態にある。また,新たにPHP 6.0の開発も始まっている。各バージョンにおける最新リリース情報を以下に紹介する。
セキュリティ・ホールを含め139件のバグを修正したPHP 5.0.5
9月5日,PHP 5.0系の最新版PHP 5.0.5が正式リリースされた。
PHP 5.0系は,基本的に新機能の追加は行われないことになっている。本バージョンにおいても大きな機能追加は行われず,主な変更点はバグ修正となっている。前のバージョン(5.0.4)がリリースされてから既に5カ月以上が経過していることもあり,139件と多くのバグ修正が行われている。また,XMLRPCパッケージに関する重大なセキュリティ上の問題の修正も行われている。PHP 5.0系を使用しているユーザーは早期のバージョン更新が推奨されている。
ただし,バージョン更新にあたっては既存のアプリケーションの動作を十分に確認することが必要である。例えば,このバージョンでは,関数の引数として変数以外のリファレンスを指定した場合に,メモリーの破壊が起きるという問題が修正されている。この修正により,従来は動作していたコードが「variable references should be returned by reference」という致命的なエラーを発生し,動作しなくなる。動作が不安定となる可能性があるコードを厳しくチェックするようになったことによる副作用であるが,既存のコードへの影響はあることが懸念されるため,注意が必要である。
バグ修正以外の主な変更点を以下に示す。
1. バンドルされているPerl互換正規表現関数PCREのバージョンが5.0に更新
2. MySQLiエクステンションにクライアント文字セットを設定する関数mysqli_set_charset()が追加
3. 付属コマンドphpizeおよびphp-configのUnixマニュアル追加
4. システムにおけるint型のサイズを表すPHP定数(PHP_INT_MAX ,PHP_INT_SIZE)の追加
なお,変更点の詳細については,ChangeLogを参照していただきたい。
PHP 5.1は順調なら9月中に正式公開
次期バージョンにあたるPHP 5.1は正式リリースに向けて作業が進んでおり,8月17日に最初のリリース候補版PHP 5.1.0RC1が公開されている。順調にリリースに向けた確認作業が進んだ場合,今月中に正式公開されると思われる。
なお,PHP 5.1用のソースコードはCVSのHEADブランチで管理されていたが,リリース候補版の公開と同時に,PHP 5.1専用のブランチに分岐された。これは,これまで別ブランチで行われていたUnicode対応のためのコードをHEADブランチにマージするためである。Unicode対応は次々期版にあたるPHP 6.0(詳細は後述)で行われる予定である。
Oracle用エクステンション更新
OracleCall Interface (OCI8)によるOracleデータベースへの接続をサポートするエクステンションoci8のバージョン1.1が9月7日にリリースされた。前版から多くのバグ修正が行われるとともに,ステートメントのキャッシュ,パーシステントコネクションに関するチェック機能などの新機能の追加も行われている。
oci8バージョン1.1は,PECLパッケージとして配布されており,PEARパッケージマネージャにより以下のようにインストールすることができる。
# pear install oci8-beta
このバージョンは前版からの変更点が多いために現在はβ版として登録されている。Oracleデータベースは主にビジネス用途でのユーザー数が多く,信頼性や利便性が向上した新版は注目されると思われる。
次は,PHP 6に向けての開発が早くも始まったという話題である。