Ticket #564 (assigned 改善提案) — at Version 9
PEAR::DB から PEAR::MDB2 or ADOdb への変更
| Reported by: | nanasess | Owned by: | nanasess |
|---|---|---|---|
| Priority: | 高 | Milestone: | EC-CUBE2.11.0 |
| Component: | その他 | Version: | コミュニティ (eccube-comu) |
| Keywords: | Cc: | ||
| 修正済み: |
Description (last modified by nanasess) (diff)
現在, DB の抽象化ライブラリとして PEAR::DB を使用しているが, 以下の問題がある.
- PEAR::DB は PHP ライセンスであり, GPL と矛盾する
- もうメンテナンスされてない
上記の理由により PEAR::MDB2 若しくは ADOdb へ変更する
導入要件
- 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 を越える場合がある
参考
Change History
comment:1 Changed 16 years ago by nanasess
- Component changed from フロント to その他
- Description modified (diff)
- Summary changed from PEAR::DB から PEAR::MDB2 への変更 to PEAR::DB から PEAR::MDB2 or ADOdb への変更
comment:2 Changed 16 years ago by nanasess
- Status changed from new to assigned
- Description modified (diff)
現状は, どちらも導入要件を満たしていそうなので, サンプルコードを書いてみることにします.
comment:4 Changed 16 years ago by nanasess
- Description modified (diff)
PEAR::DB から PEAR::MDB2 へ移行のための参考サイト追加.
現状は, PEAR::DB への依存が激しすぎるので MDB2 の方が妥当かも...
Note: See
TracTickets for help on using
tickets.
