|
|
OracleとPHPでウェブサイトを構築する |
第1回:親密になったOracleとPHPの関係
著者:Robert Mark 2006/2/9
|
|
|
1 2 3 次のページ
|
|
PHPとOracleの提携
|
PHPとOracleの提携は少し変わったカップルのようなものです。PHPは自由で活発なオープンソースコミュニティからできたものですが、Oracleは企業社会の要求を背景に成長してきた企業です。この2つを一緒に使用することで、非常に効率的に活用することができます。
PHPは多様なオープンソースのコンポーネントを開発する膨大なコミュニティを背景とした言語ですが、Oracleはパフォーマンス、スケーラビリティ、セキュリティを扱うアプリケーション一式を提供する、主に企業用のデータベース管理システムです。
ここ2、3年の間にOracleとPHPの関係は、より親密なものになってきました。これは両方ともWebシステムの開発言語、データベースの環境では主要なプレーヤであるため、それぞれの背景が異なるにもかかわらず、ZendとOracleのパートナーシップは明確な結果を生み出し、両者は注目を浴びることになりました。2005年10月11日にOracleとZendは新しいZend Core for Oracleのリリースを発表しました。
|
PHPでOracleを使用するために必要なこと
|
今まではPHPでOracleを使用するためには、Apache、PHP、Oracle InstantClientを別々にダウンロードする必要がありました。そして、それぞれをリンクしてコンパイルしてインストールする必要がありました。Zend CoreはOracle 10gのクライアントライブラリを統あわした高速なOCI8ドライバを使用することができます。また、PHPとOracleを同時にインストールするためのインストーラもバンドルされています。新しいZend CoreはWebからの設定が可能でzend.comからフリーでダウンロードすることができます。
もともとPHPのOracle用のAPIはかなり制限されています。PHPでOracleに接続するためのオリジナルAPIはORA関数と呼ばれています。これらのORA関数は今はPHPにバンドルされていません。このAPIはシンプルなインサートとセレクトでは効果的でしたが、BLOBsやCLOBs、変数のバインディングをサポートしておらず、ストアドプロシージャにアクセスするのに問題がありました。
わりと新しいPHP4から導入されたOCI8関数では、バージョン8以上のOracleがWindowsもしくはLinux上で実行されている必要があります。これらの関数はOracleデータベースに接続するのに、プログラムでWebサーバから接続の呼び出しをする時に新しい接続を作成するか、永続的接続を利用するかを特定することができます。ラージオブジェクトのサポートはOracleのLOBデータ型を利用するためのもので、変数のバインディングはより複雑なストアドプロシージャを実行するために導入されました。
OCI8関数はOracleにアクセスするのにより多くの柔軟性をもたらしますが、PHP開発者が一般的に使用するデータベースであるMySQLとのインタフェースにばかり目がいってしまうので、OCI8関数のサポートは充実しませんでした。PHPとOracleを使用した主要なWebサイトがほとんど存在していないのもこの理由からです。
Oracleを使用している企業や組織は、PHPがOracleにアクセスする方法としてまだ充分に確立していないという理由から、Web開発の新しい手法を模索しなくなってしまうかもしれません。Oracleが1995年にはじまってからしばらくの間、Oracleを利用したWeb開発は一般的にJavaを利用して行われてきました。ですが時代は変化し、現在ではPHPとOracleは充分に相互に補完しあうと認識されています。この記事ではOracleがPHP開発にもたらす利益について、いくつか紹介します。
|
1 2 3 次のページ
|
書籍紹介
PHPプログラマーズマガジン
PHPプログラマーズマガジンは、PDF形式で読者の方にお届けするPHP言語(PHP: Hypertext Processor)専門誌です。 カナダMTA出版のphp|architect誌を日本語に翻訳し、独自の記事を加えて月刊でお届けしています。
発行:アシアル株式会社 価格:1,029円
ご購入はこちら http://www.asial.co.jp/magazine/
|
|
|
|
著者プロフィール
Robert Mark
ケベックのモントリオールにあるMcGill大学に勤めており、シニアWebプログラマ/データベースプログラマ。主にOracleとPHPを使って、Webサイトを構築している。
|
|
|
|