オブジェクト指向言語に生まれ変わるPHP5[前編]

ベータリリース目前!? PHP5の新機能

小山 哲志

2003/4/25

現在開発中のPHP5は、オブジェクト指向機能が大幅に強化される。次世代PHPはどのような言語になるのか? ベータリリースを目前にひかえたPHP5の言語仕様を解説する(編集部)

 現在開発中のPHPバージョン5(以下PHP5)。オブジェクト指向機能の大幅な強化が主な改善点であり、巷ではリリースに関する声もちらほら聞かれるようになってきた。

 そこで、PHP5の開発経緯やその新機能について、ここでざっとまとめてみたいと思う。

 

 

 

 

 

 Zend Engine 2.0の誕生

 現在のPHPバージョン4(以下PHP4)の基本的な文法をつかさどっているのは、Zend Engineと呼ばれるスクリプトエンジンだ。これはPHP4の目玉機能の1つであり、洗練された構造かつ容易に拡張可能な言語エンジンは、それまでの場当たりな拡張を繰り返してきたPHP3に対する反省として生まれたものであった。PHP4のパフォーマンスは、当初の目標どおりPHP3を大きく上回り、Webプログラミングの世界において大きなシェアを占めるようになったのは、皆さんもご存じのとおりである。

 Zend Engineを開発したイスラエルのZend Technologies Ltd.(以下Zend社)は、PHP4の開発と同時期に、PHP3の主要開発者であったZeev SuraskiやAndi Gutmansらによって設立された企業である。Zendの名称もZeevとAndiの名前をもじって付けられている。Zend社のビジネスモデルは、PHPのコアをZend Engineとしてオープンソースで提供しつつ、その周辺ツールを開発・販売して利益を上げるというものである。オープンソースソフトウェアを基盤にしたビジネスは、世界的にも苦戦している企業が多い中、比較的うまくいっている例といえよう。

PHP4の限界

 PHP4が大成功したおかげで、その利用用途もより広範囲になってきた。エンタープライズ用途にPHPを利用するという話もちらほら聞くようになってきたが、そこで問題になるのは、大規模サイトを構築する際のコードの再利用性の悪さだった。具体的には、PHP4のオブジェクト指向機能が弱かったので、Javaなどに慣れた技術者からはその点の不満が多く寄せられていた。

 PHP4のオブジェクト指向機能も徐々に改善されつつはあったが、基本的な文法を大きく変更することもできず、開発者はPHPなりの記述方法を新たに開拓して目的を達成していた。

Zend Engine 2.0の開発開始

 そこでZend社のPHP中心開発者たちは、次なるPHPの言語エンジンとしてZend Engine 2.0(以下ZE2)の構想を2001年7月に発表した。そのホワイトペーパー「Zend Engine version 2.0: Feature Overview and Design」(http://www.zend.com/engine2/ZendEngine-2.0.pdf)で目標とされたのは、当然ながらオブジェクト指向機能の大幅な強化だった。

 現在のPHP4 Zend Engineを場当たり的に拡張することは、昔のPHP3と同じ轍を踏むこととなる。その意味で、新たに言語エンジンのメジャーバージョンを上げ、仕様目標を明確に定めたことは、開発コミュニティから称賛をもって迎えられた。

 ZE2の開発も、従来のZend Engineと同様にオープンソースモデルで行われている。最新ソースはCVSですべて公開され、オープンな開発者向けメーリングリスト()で、開発に関する議論が活発に行われている。開発開始当初はzend.comにあったCVSリポジトリも途中からcvs.php.netに移動し、ZE2がコミュニティのものであることを明確に打ち出した。

【注】
ZE2の開発者メーリングリスト(英語)に参加するには、engine2-help@lists.zend.comに空メールを送り、その返事の指示に従えばよい。

 ZE2は現在、PHPの次のメジャーバージョンであるPHP5に採用されることが決まっている。リリースの予定は未定だが、2003年4月1日に配信されたZend社からのニュースレターによれば、間もなくベータリリースされるようだ。

 
1/2

Index
ベータリリース目前!? PHP5の新機能
Page1
Zend Engine 2.0の誕生
 PHP4の限界
 Zend Engine 2.0の開発開始
  Page2
PHP5の新機能
 オブジェクトは参照渡しがデフォルト
 プロパティにアクセス制限を導入
 メソッドにアクセス制限を導入
 abstractクラスとabstractメソッド
 インターフェイス
 final宣言

オブジェクト指向言語に生まれ変わるPHP5

 PHP関連記事
例外処理の実装を把握する
PHP5で広がる! 開発環境(1)
 PHP4のサポートが終了し、いよいよPHP5への移行を視野に入れる時期が来た。PHP5の機能を生かした開発のポイントを紹介
クライアントPCに言語環境を入れる理由
Mac OS X+PHPでオールインワン環境(準備編)
 Webアプリ開発者に人気のMac OS X。効率的な開発のために複数バージョンのPHPを実行する環境を構築してみよう
PHPに押し寄せるリスクと国際化の波
PHPカンファレンス2008レポート(前編)
 PHP4のサポートが完全に終了する。多くの新機能が投入されるPHP5.3へ移行か、国際化対応で開発が遅れるPHP6を待つか
PHPによる大規模商用サービスの裏側
PHPカンファレンス2008レポート(中編)
 企業のWebアプリケーション開発現場で利用されるPHP。開発現場の裏側にはさまざまなドラマが隠されている
PHPユーザーは本当にほかの言語を知らないのか?
PHPカンファレンス2008レポート(後編)
 PHPは本当にダメな言語なのだろうか。Perl、Ruby、Python、Java、JavaScriptの使い手が白熱した議論を行った
  Coding Edgeフォーラムフィード  2.01.00.91


Coding Edge フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

>

Coding Edge 記事ランキング

本日 月間