- はじめに
- ADODB を Ethna のプロジェクトにインストール
- コントローラークラスの書き換え
- dsn の設定
- 実際に使ってみる
ADODB は、デフォルトで Ethna で利用できる PEAR::DB に比してスピードが速いと言われており*1、使いやすいAPI が実装されている PHP 4/5 に対応したデータベースアクセスライブラリです。ここでは、そのADODBをEthnaで使う方法を説明します。
このドキュメントは、以下の作業が完了していることを前提にして書かれています。仮に以下の作業が完了していなければ、下のリンクを参考に作業を行っておいてください。
以下では、プロジェクトの アプリケーションID が「sample」、アプリケーション配置ディレクトリを /tmp として説明を行います。
あなたのプロジェクトに合わせて適宜読み替えるようにして下さい。
まずは ADODB を sourceforge.net から ダウンロードします。
PHP 4/5 対応版*2 の出来るだけ最新のものを取得すると良いでしょう。
ダウンロードしたら、任意の場所に展開します。ここでは、執筆時点での最新版 5.20.7 を使います。
unzip adodb-5.20.7.zip
tar xvfz adodb-5.20.7.tgz
すると、adodb5 というディレクトリができると思いますので、それを プロジェクトの lib ディレクトリ以下に移動します。
mv adodb5 /tmp/sample/lib/
これで ADODB を Ethna のプロジェクトにインストールできました。*3
インストール作業が終わったら、app/Sample_Controller.php の以下の部分を書き換えます。
/**
* @var array class definition.
*/
public $class = array(
/*
* TODO: When you override Configuration class, Logger class,
* SQL class, don't forget to change definition as follows!
*/
'class' => 'Ethna_ClassFactory',
'backend' => 'Ethna_Backend',
'config' => 'Ethna_Config',
- 'db' => 'Ethna_DB_PEAR',
+ 'db' => 'Ethna_DB_ADOdb',
Ethna の通常のDBアクセスと同じく、etc/config.php の dsn を設定しておいて下さい。
$config = array(
'debug' => false,
+ 'dsn' => 'mysql://user:pass@unix+localhost/dbname',
);
これで Ethna で ADODB を使う準備は整いました。
あとは、通常のデータベースアクセスと使い方は同じです。但し、ADODB を使用しているので、アクセスのAPI は Ethna_DB_ADOdb クラスのそれに従います。*4 クラスリファレンスを参考にして、利用してみて下さい。
require_once('adodb5/adodb.inc.php');
$db = $this->backend->getDB();
$rs = $db->query('SELECT * FROM test');
var_dump($rs);
*1PEAR::DB より 速いといわれる根拠の一例。ベンチマークの結果はともかく、データベースへのアクセス速度を決定付ける最も重要な要素はDBスキーマやインデックス等の DB設計にあると思います。
*2sourceforge では adodb-バージョン番号-for-php4-and-5 のような名前が付いています。また、本ドキュメント執筆時点で、PHP5 専用のバージョンはまだベータ版です。
*3adodb の配布物には、多様な用途に合わせて多数のファイルが含まれています。 Minimum Installのページを参考にして、あなたの用途に照らして不要なものは削除しておくと良いでしょう。
*4Ethna では実際に使用しているDBアクセスライブラリは、総じて見事に隠蔽されています。