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 MariaDB
- OpenPNE3
- MySQLでランダムな数字を得る方法
- EC-CUBEのバックアップ機能とリストア
- Zend_DBの基本
- MySQLでdatetime型(日時)を日付で抽出するSQLの速度比較
- 『Table is marked as crashed and should be repaired』の修復方法
- 複数のデータベースを切り替える方法(別データベースを使用する)
- phpMyAdminで『information_schema』などを非表示にする方法
- MySQLでクエリーをログに記録する方法
- Windows MySQLのインストール
- インストール時の解凍に失敗する Tarのバグ(PEAR/Archive/Tar.php)
- yumのius(iuscommunity.org)でエラーが出る場合
- globalNavとlocalNavのカスタマイズ(全体メニューとカテゴリごとのメニュー)
- 個体識別情報・UIDの取得方法
- SQL Buddy ブラウザベースのMySQL管理ツール
- レコード挿入時の #1364 - Field doesn't have a default value
- MySQL(MariaDB)をユーザー情報を含めてすべて移行する方法
- Zend_DBのSELECTメソッドのまとめ
- データベースを定時バックアップする方法(毎日バックアップする処理)
- member_configのname_value_hashのルール
- Got a packet bigger than 'max_allowed_packet' bytes
- SQL文で特定の曜日のみ抽出するには
スポンサーリンク