Zend、PHP5をリリース、新たな資金援助を獲得
ベンチャーキャピタルIndex Venturesからの今回の投資と、これまでのWalden IsraelとSFK Technologiesからの投資を合わせると、2003年11月から6ヶ月足らずの間にZend社がベンチャーキャピタルから調達した資金の総額は、1200万ドルになる。 イスラエルのニュースサービスGlobes [online] の記事によると、Zend社は、今回の資金調達ラウンドを終了するまでには、実質的にさらに200万から300万ドルを獲得する可能性があるという。投資家たちの信頼に応えるかのように、同社からは、待望のPHP5 First Release Candidate(FRC)がダウンロード可能になった。
Zend社の共同創立者でCTOのZeev Suraski氏が、Open Enterprise Trendsに語ったところによれば(許可を得てITMJのこの記事に転載)、PHP5 FRCは、重要な3つの分野における改善によって、エンタープライズ開発にPHPを使用にする上でさらなる向上をもたらすものだという。この3分野とは、以下のとおり。
- ネイティブSQLサポート
- XML統合機能の強化
- Javaとの(ひいては.NET資産との)連携を高める新しいオブジェクト指向テクノロジ
「私たちの観点からいえば、(PHP5の)広範な改善点によって、企業のより大規模で複雑なプロジェクトでもPHPソースコードが使用可能になります。」とSuraski氏はOETに語った。
動的SQLサポートの強化
フル機能の動的コンテンツアプリケーションをもっと簡単に作成する方法はないかと思っているPHP開発者は、MySQL、Oracle、その他のSQLデータエンジンをインストールしたり統合したりする面倒に、もう悩まされずに済む。この問題は、主に、PHPにSQLiteが含まれたことによって解消される。SQLiteは、”軽量”SQLサーバエンジンではなく、SQL構文や、トランザクションその他の多様なSQL機能を実装する、オープンソースのSQLライブラリである。
SQLiteは、SQLサーバ用の抽象レイヤではない。これは、SQLの非常にパワフルな軽量実装である。「中央データベースを必要としないアプリケーション、またはサーバクラスタで稼動するのではないアプリケーションには、SQL機能を持つ最小規模または中級規模のアプリケーションを使用でき、SQLサーバを先にインストールする必要はありません。」と、Suraski氏はOETに語った。
この改善は重大な意味を持つ。動的コンテンツアプリケーションやportletアプリケーションを対象とする企業開発者にとっては、特に大きな意味があるだろう。「動的コンテンツアプリケーションの開発には、通常、データベースコンテンツが必要でした。そして、多くの開発者にとっては、その分野に挑むことに、本質的な障壁がありました。Oracle、MySQL、その他のデータベースをインストールすることは、日常的なことではなかったからです。そうした障壁はもう取り除かれました。」と、Zend社の製品マーケティングディレクタ、Brad Young氏は語る。
PHP5にSQLiteを実装するという選択は、「小規模または中規模のアプリケーションのためによいことだと思います。データベースを使用するアプリケーションとそのデータベースが同じサーバに存在することになるからです。」と、Suraski氏は補足した。
具体的には、「SQLiteによって、ローカル(PHPプラットフォーム)にSQLレイヤを追加したので、セットアップ環境に関係なく、PHP5のどのサーバでもSQLをサポートできるようになりました。インポートしたデータをそのままサーバに置くことができます。」そして、PHP5サーバをリモートデータベースに直接結合する必要がなくなった、とSuraski氏は説明する。
SQLiteにより、Suraski氏が「往復PHP」と呼ぶ機能も使用できるようになった。この機能では、データベースに対する基本的なSQLクエリ/SQLコールに、PHPの関数を実際に埋め込むことができる。「SQLiteはPHP内に実装されるので、クライアントサーバアーキテクチャとは異なります。SQLiteはPHPの内部に組み込まれています。ですから、PHPの関数をSQLクエリ内から呼び出すことができる、というのも利点の1つです。SQLiteでクエリを選択して、SQL関数内でPHP関数をバインドでき、クエリ内からその関数を実際に呼び出すことで、あらゆる操作を簡単に行うことができます。」と、Suraski氏はOETに話した。
PHP5の、SQLite関連のその他の主な機能として、以下のものがある。
- サブselect、ビュー、トランザクション、REPLACEのサポート
- 完全なタイプレス
- 非常に高速なパフォーマンス(MySQLと比べ概ね高速、PostgreSQLと比べ著しく高速)
- 省メモリ消費
- 大規模データベース操作の容易性
より緊密で容易なXMLサポート
このPHP5アップグレードでは、PHP開発におけるネイティブXMLサポートが大きく向上する、とSuraski氏は話す。「今日、XMLの使用法としては、基本的にDOMが一般的です。PHPインタフェースは、今回、ずっと簡潔になりました。XMLは非常に簡潔なフォーマット言語ですが、これを使用するPHPアプリケーションを記述するには、複雑過ぎるものになってしまいました。そこで、PHP5では、これを本来あるべき単純なものにしました。」
具体的には、「XML(サポート)は、今回のPHPではネイティブデータ型のレベルになっています。これは、XMLパーサをPHPオブジェクトのように操作できるということです。」と、Suraski氏は話す。
PHP5の、XMLサポート関連のその他の主な機能として、以下のものがある。
- 新しいZend Engine 2 Overloading APIの活用
- PHPの動的性質の活用
- XPath、スキーマ検証のサポート
- 標準libxml2のラップ
PHPオブジェクト指向のサポート
企業内で、PHPの機能を包み隠すことを強力に推し進めたPHP開発者がいたので、結果として、PHPのオブジェクト指向機能が”徹底的に”推進された、とSuraski氏は話す。PHP5でオブジェクト指向サポートを次のレベルに進めるために、また、企業のオブジェクト指向言語とPHPがよりうまく連携するために、PHP5では、エンジンレイヤで”ハンドルベース”のオブジェクト指向モデルを実現した。
Zend社の新しいPHP5用オブジェクトモデルの詳細、およびコードサンプルについては、 Zend社のWebサイトのPHP5の項目を参照。
PHP5における、緊密なオブジェクト指向サポートおよびPHP外部との統合を実現する、エンジンアップグレードのその他の主な機能として、以下のものがある。
- 静的クラスメンバ
- 抽象メソッドおよびインタフェース
- ユーザレベルの多重定義
- __autoload()によるクラスの自動ロード
- 参照に対するforeach()
- 反復子
- 多重定義APIの改善
PHP5のその他のリソース
php.netのリソースの案内として、Damien Seguy氏は、簡潔でわかりやすいリソース一覧(コード、コメントボード、ヒント、その他あらゆるリソースについて)を提供している。
Zend社のサイトには、PHPの将来についての便利なリンク集があり、スライドプレゼンテーション、概要、チュートリアルリソース、その他を紹介している。
Sourceforgeでは、各種のPHP5リソースとリスト/グループを提供している。Propelは、Apache Torqueベースの、PHP5用オブジェクトパーシスタンスとクエリのサービスだ。Propelは、データモデルを記述する単純なXMLスキーマから始めて、データベースのクエリと操作用に、RDBMS用SQL定義ファイル、およびPHPクラスを作成する。
PHP BuilderのWebサイトでは、Luis Argerich氏による“Introduction to PHP5”という強力な記事とコードサンプルが掲載されている。
PHP Patternsの立役者のHarry Fuecks氏も、SitepointにPHP5のレビューを書いている。これは、ベータ1でリリースされたコードに基づいたものだ。同氏は、PHP Patterns Webサイトの管理者でもある。PHP開発者はこのサイトで、役に立つPHP開発パターン、テンプレート、コード、ヒントを得ることができる。
Vance McCarthy──Open Enterprise Trends編集者。