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の高速化
- リンクメニューを管理している場所
- 別テーブルでSELECT JOINしながらUPDATEする方法(SELECTした結果でUPDATEする)
- プロフィール項目の識別名にop_preset_は使えません 『正しくありません。』
- Ruby on Railsのマイグレーションの型とMySQLの型の対応表
- 数値型(データ型)のまとめ
- EC-CUBEのサーバ移行の方法
- phpMyAdminで『information_schema』などを非表示にする方法
- Beep音を無効にする
- Zend Frameworkのデータベース接続
- 個体識別情報・UIDの取得方法
- LIMITで件数制限をしつつ、全件数を取得する方法 SQL_CALC_FOUND_ROWS FOUND_ROWS()
- データベースを定時バックアップする方法(毎日バックアップする処理)
- 文字コードを指定する方法
- コマンドやphpMyAdminで複数のデータベースに接続できるユーザーを作成する方法
- MySQLでクエリーをログに記録する方法
- データベーステーブルの構成を変更する カラムの追加など
- 文字列型(データ型)のまとめ
- 複数のデータベースを切り替える方法(別データベースを使用する)
- レコード挿入時の #1364 - Field doesn't have a default value
スポンサーリンク