symfonyのORマッパ(Propel、Doctrine)
symfonyではデータベースを扱うための標準のO/Rマッパ(object-relational mapper[ORM])としてPropelを使用しています。
Propelでは、SQL文をほとんど記述せず、それに代わるオブジェクトを使用してDBにアクセスできるようになっています。
これによりMySQLでもPostgreSQLでもOracleでも対応しているPropelさえあればデータベースサーバの種類によらず、同じコードを使用することができます。
symfonyでは、sfDoctrinePluginプラグインを追加することでPropelの代わりにDoctrineを使用することができます。
Doctrineでは、SQLに近いDQL (Doctrine Query Language)というObject Query Languageを使用します。
DQLもオブジェクトで記述しますが、SQLを基本としたメソッドとなっています。
PropelはJavaのApache Torqueを基にしていて、DoctrineはJavaのHibernateを参考にしています。Doctrine Query Language(DQL)は、HibernateではHibernate Query Language(HQL)に該当します。
[参考記事] Doctrine
[参考記事] OpenPNE3はDoctrine
Propel
Doctrine
sfDoctrinePlugin
Torque
Hibernate
スポンサーリンク
関連記事
- CakePHP、Symfony、Zend Frameworkの比較
- Doctrineでモデルを作成する
- OpenPNE3はsymfonyベース
- PHPフレームワークの一覧
- ディレクトリ構成
- Symfony PropelでのMySQLの設定方法
- Symfonyのインストール
- firesymfony Symfonyデバック用Firebug拡張[Firefox]
- Symfony(シンフォニー)
- MySQL
- OpenPNE3
- OpenPNE3のデータベースの設定
- MySQLでクエリーをログに記録する方法
- MySQL関数のまとめ
- MySQLで文字化けを防ぐ方法
- 数値型(データ型)のまとめ
- モバイル用の開発環境を作る方法(IP制限の解除、メールアドレスの登録)
- MySQLでBeep音を消す設定
- MySQLのソケットエラー
- Windows MySQLのインストール
- SQL文で特定の曜日のみ抽出するには
- Got a packet bigger than 'max_allowed_packet' bytes
- utf8_general_ci と utf8_unicode_ci の違い
- OpenPNEのバージョンを知る方法
- LIMITで件数制限をしつつ、全件数を取得する方法 SQL_CALC_FOUND_ROWS FOUND_ROWS()
- Beep音を無効にする
- 複数のデータベースを切り替える方法
- Windows MySQLインストール後の設定
- Zend_DBのSELECTメソッドのまとめ
- MySQLのログファイル ログの種類と保存先
- 別テーブルでSELECT JOINしながらUPDATEする方法(SELECTした結果でUPDATEする)
- MySQLのインストール
スポンサーリンク






