定性評価
ORMの設定難易度、利用のしやすさなどの定性的評価を以下の表に記載します。あくまでも主観的な部分があるため、一個人の意見としてご参考にしていただけたらと思います。
Doctrine | Propel | php-activerecord | PHPDAO | |
普及度 | ◎ | ○ | ○ | × |
更新頻度 | ◎ | △ | ○ | × |
初期設定 | ○ | × | ○ | ○ |
スキーマ変更に対する柔軟性 | △ | △ | ○ | △ |
習得容易性 | × | × | ○ | ○ |
定性評価の評価基準は、以下のように考えました。
- 普及度:検索エンジンで当該ORM名を検索し、言及や使い方の記事の多さ
- 更新頻度:2008年以降のバージョンアップの頻度、機能追加の多さ
- 初期設定:実行に必要なライブラリ、ORMで利用するクラスを生成するためのスキーマ定義を準備する少なさ
- スキーマ変更に対する柔軟性:データベースのスキーマが変更した際にORMで利用するクラスを再生成する簡単さ
- 習得容易性:ORMの概念やORM専用の言語の習得が必要ないか、ORMライブラリの呼び出しを容易に行うことができるか
まとめ
ORMによって実装している機能や更新頻度などに大きな差があります。ORMを利用する場合はORMに何を求めるかをしっかり整理しましょう。
ORMを開発プロジェクトで利用する際は、特にメモリ使用量に気をつけましょう。最大メモリ使用量には最大77倍の差があります。ORMを利用する前にサンプルコードでパフォーマンスチェックをしましょう。
一度、開発プロジェクトでORMを利用しだしたらORMの変更コストは高くなるので、導入前にパフォーマンステストをやプロトタイピングを行い、ORMを用いて性能要件や既存のアーキテクチャとの整合性がとれるかを事前に確認してください。