オブジェクト指向言語に生まれ変わるPHP5[前編]
ベータリリース目前!? PHP5の新機能
小山 哲志
2003/4/25
現在開発中のPHP5は、オブジェクト指向機能が大幅に強化される。次世代PHPはどのような言語になるのか? ベータリリースを目前にひかえたPHP5の言語仕様を解説する(編集部)
- - PR -
現在開発中の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の使い手が白熱した議論を行った |
|
- Rによるオープン・データの可視化(2) (2010/9/2)
美しいグラフが手軽に作成できるグラフィックパッケージを使い、世界銀行のデータやアフガン戦争のデータを可視化する - プログラムの実行を制御しよう (2010/8/23)
今回は条件分岐や繰り返し処理をCで学びます。条件によってプログラムの実行を制御することは、プログラムに欠かせない要素です - Rによるオープン・データの可視化(1) (2010/8/20)
今回はパブリックに入手可能な“オープン・データ”とRを使い、人口動態統計や株式相場などのデータを可視化する - GAE+SQL4GでRailsアプリ開発(リベンジ編) (2010/8/17)
最終回となる今回は、進化したGAE上のJRuby環境で、リアルなRailsアプリを動かしてみます
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
お勧め求人情報








