id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	modified_flg
564	PEAR::DB から PEAR::MDB2 への変更	nanasess	nanasess	"現在, DB の抽象化ライブラリとして PEAR::DB を使用しているが, 以下の問題がある.
 * PEAR::DB は PHP ライセンスであり, GPL と矛盾する
 * もうメンテナンスされてない

上記の理由により PEAR::MDB2 ~~若しくは ADOdb~~ へ変更する
 MDB2 :: http://pear.php.net/package/MDB2/
 ~~ADOdb :: http://adodb.sourceforge.net/~~

=== 導入要件 ===
 - GPL と矛盾しないライセンスで配布されていること
 - Sequence 取得の抽象化メソッドがあること
   - Sequence に関して PostgreSQL 及び MySQL を同一のコードベースで記述可能なこと
 - データベースのメタデータを扱うメソッドがあること
 - 活発にメンテナンスされていること

=== 利点 ===

 - PEAR::MDB2
   - 2.5.x では, PDO 用のドライバも有り
   - エラーハンドリングを, 他の PEAR パッケージと統一可能
 - ADOdb
   - 速いというウワサ
   - キャッシュ機構あり
   - adodb-errorpear.inc.php を include すれば, PEAR::Error も使用可能
   - adodb-errorhandler.inc.php で, 任意のエラー定数で trigger_error を使用可能

=== 欠点 ===

 - PEAR::MDB2
   - PHP の include_path に, 他の PEAR クラスが存在すると, 関数の多重定義エラーになる
   - EC-CUBE のエラーハンドリングが貧弱なため, DBエラーが発生すると無限ループする
 - ADOdb
   - DB::last_query に相当する機能が無い(EC-CUBE 本体では未使用)
   - adodb-errorpear.inc.php を使用した場合, 出力するエラー文字列が膨大になり, memory_limit を越える場合がある

=== その他 ===
 - DBエラーが発生した場合, PHP エラーではなく EC-CUBE のエラー画面を表示するのが望ましい

=== 参考 ===
 - http://www.phpied.com/db-2-mdb2/
"	改善提案	closed	高	EC-CUBE2.11.0	その他	コミュニティ (eccube-comu)	修正済			
