Doctrine

Symfony ORM のパフォーマンス比較 (2) Symfony2(PR4) & Doctrine2

この記事は、Symfony アドベントカレンダー 2010 に参加しています。 Symfony Advent 2010 : ATND http://www.symfony.gr.jp/adventcalendar/2010 さて、今回はいきなりですが、Symfony2 と Doctrine2 を使って計測してみます。 この計測を行うには、以下の…

Symfony ORM のパフォーマンス比較 (1) symfony 1.4 & Doctrine 1.2

この記事は、Symfony アドベントカレンダー 2010 に参加しています。 Symfony Advent 2010 : ATND http://www.symfony.gr.jp/adventcalendar/2010 以前、DoctrineとPropelのパフォーマンス比較 - しんふぉにゃんという記事を書きました。その記事が2009年9月…

メモ

Doctrine1では、有効桁数が15桁以上あるような大きな数値をdecimal型で正しく処理できない・・・。※チケットを作成する必要ありという個人的メモ

doctrine:build処理のメモ

sfDoctrineBaseTask::prepareSchemaFile() プラグインとプロジェクトのスキーマを読み込んで結合する。 結合したスキーマファイルをテンポラリディレクトリに保存する。 realpath(sys_get_temp_dir()).'/doctrine_schema_'.rand(11111, 99999).'.yml' テンポ…

Doctrineのmigration機能でデータベーススキーマの差分管理

DoctrineにはRuby on Rails由来のmigration機能があります。 この機能を今まで使っていなかったので、ちょっと調べてみました。なお、参考ドキュメントは以下ですが、このドキュメントを読むだけでは細かい挙動を把握できませんでした。 symfony 1.x legacy …

Doctrineで生成された〜TableクラスのgetInstanceスタティックメソッド

Doctrineの割と最近の修正で、生成されたモデルクラスのうち、〜Tableクラスに、以下のようなgetInstanceメソッドが追加されるようになりました。

メモ:Doctrine_Recordのステータス

STATE_DIRTY プロパティが変更された(ダーティ) STATE_TDIRTY 新規レコードオブジェクトで、プロパティが変更された STATE_CLEAN すべてのプロパティがデータベースから読み込まれて以降変更されていない STATE_PROXY プロパティがまだ完全には読み込まれ…

メモ:Doctrineのレコードオブジェクトでset〜を呼び出したときのダーティチェック

Doctrineで既存のレコードをインスタンス化して、そのオブジェクトのフィールドの値を変更して保存する場合、「値が何も変わっていなければ保存しない」というチェックが行われます。このチェックは、Doctrine_Recordクラスの_setメソッド内で行われます。 _…

2つのDoctrine_Collectionをマージするには

Doctrine_Collection::merge()ただし、mergeメソッドではコレクションのインデックスは保持されない。 内部でDoctrine_Collection::add()メソッドが呼ばれており、addにはオブションでキーを指定できるので、インデックスを保持したままマージしたい場合は、…

Doctrine_Collectionのキー一覧を取得する

Doctrine_Collection::getKeys()

取得したDoctrine_Collectionのインデックスに特定のフィールドの値を使う

通常、Doctrineでレコードを取得すると、Doctrine_Collectionのインデックスには整数インデックスが使われます。 しかし、取得したレコード一覧を単にループで処理するのではなく、連想配列のように処理したい場合もあります。 このような場合、Doctrine_Col…

Doctrine_RecordのpostHydrateフックを使う

Doctrineには、例えば「特定のモデルでレコード保存前」だとかにカスタム処理を実行するための仕組みとして、イベントリスナーの機能と、それと似たレコードフックの機能があります。 http://www.doctrine-project.org/documentation/manual/1_2/en/event-li…

外部キー=主キーのスキーマを使う場合のowningSide

Twitterで@s_kanedaさんがスキーマのowningSideについてつぶやいていました。 symfonyのスキーマファイルに出てくるowningSideってなんだろう http://twitter.com/s_kaneda/status/10203798714@hidenorigoto ありがとうございます!外部キーが主キーになって…

DoctrineのSortableビヘイビアを使う場合

レコードをソート可能かつ、各レコードのソート順変更などの操作を可能にする「Sortable」というビヘイビアがありますが、いくつかの実装が存在するようです。 Doctrine公式に登録されているextension http://www.doctrine-project.org/extension/Sortable …

symfony 1.3/1.4でDoctrineモジュールを生成したときの変数名が変更された件

昨日、Twitterにて@odasukeさんがつぶやかれていたのを見て、その後気になったままだったので状況を調べてみました。結論としては、ごく最近symfony 1.3/1.4のDoctrineプラグインのコードが変更された影響だった、ということです。 該当する変更箇所:http:/…

symfony1.3のDoctrineモデルでgetter/setterのPHPDocコメントが生成されるようになった

以前、Doctrine(symfony 1.3 alpha + Doctrine)について調べた時、生成されたモデルクラスに各フィールド値に対応するアクセサメソッドが存在しない、ということを書きました。 Doctrineメモ - しんふぉにゃん 私は普段Eclipse + PDTでコード補完に頼りなが…

DoctrineとPropelのパフォーマンス比較

# 2009/09/23 22:45 Fivestarさんからコメントで教えていただいたDoctrineのINSERTについてテスト1に追記しました。 # 2009/09/24 01:03 Fivestarさんからコメントで教えていただいたDoctrineのQueryCacheについてテスト3に追記しました。 symfonyとしては「…

Doctrineメモ

ぼちぼちDoctrineを使い始めようということで趣味プロジェクトをsymfony1.3+Doctrineで作り始めました。 Doctrineについての知識が全くないので、Propelとの違いなど(初歩的なことから)個人的にメモしていきます。 symfony 1.x legacy website 注)symfony…