Doctrine
この記事は、Symfony アドベントカレンダー 2010 に参加しています。 Symfony Advent 2010 : ATND http://www.symfony.gr.jp/adventcalendar/2010 さて、今回はいきなりですが、Symfony2 と Doctrine2 を使って計測してみます。 この計測を行うには、以下の…
この記事は、Symfony アドベントカレンダー 2010 に参加しています。 Symfony Advent 2010 : ATND http://www.symfony.gr.jp/adventcalendar/2010 以前、DoctrineとPropelのパフォーマンス比較 - しんふぉにゃんという記事を書きました。その記事が2009年9月…
Doctrine1では、有効桁数が15桁以上あるような大きな数値をdecimal型で正しく処理できない・・・。※チケットを作成する必要ありという個人的メモ
sfDoctrineBaseTask::prepareSchemaFile() プラグインとプロジェクトのスキーマを読み込んで結合する。 結合したスキーマファイルをテンポラリディレクトリに保存する。 realpath(sys_get_temp_dir()).'/doctrine_schema_'.rand(11111, 99999).'.yml' テンポ…
DoctrineにはRuby on Rails由来のmigration機能があります。 この機能を今まで使っていなかったので、ちょっと調べてみました。なお、参考ドキュメントは以下ですが、このドキュメントを読むだけでは細かい挙動を把握できませんでした。 symfony 1.x legacy …
Doctrineの割と最近の修正で、生成されたモデルクラスのうち、〜Tableクラスに、以下のようなgetInstanceメソッドが追加されるようになりました。
STATE_DIRTY プロパティが変更された(ダーティ) STATE_TDIRTY 新規レコードオブジェクトで、プロパティが変更された STATE_CLEAN すべてのプロパティがデータベースから読み込まれて以降変更されていない STATE_PROXY プロパティがまだ完全には読み込まれ…
Doctrineで既存のレコードをインスタンス化して、そのオブジェクトのフィールドの値を変更して保存する場合、「値が何も変わっていなければ保存しない」というチェックが行われます。このチェックは、Doctrine_Recordクラスの_setメソッド内で行われます。 _…
Doctrine_Collection::merge()ただし、mergeメソッドではコレクションのインデックスは保持されない。 内部でDoctrine_Collection::add()メソッドが呼ばれており、addにはオブションでキーを指定できるので、インデックスを保持したままマージしたい場合は、…
Doctrine_Collection::getKeys()
通常、Doctrineでレコードを取得すると、Doctrine_Collectionのインデックスには整数インデックスが使われます。 しかし、取得したレコード一覧を単にループで処理するのではなく、連想配列のように処理したい場合もあります。 このような場合、Doctrine_Col…
Doctrineには、例えば「特定のモデルでレコード保存前」だとかにカスタム処理を実行するための仕組みとして、イベントリスナーの機能と、それと似たレコードフックの機能があります。 http://www.doctrine-project.org/documentation/manual/1_2/en/event-li…
Twitterで@s_kanedaさんがスキーマのowningSideについてつぶやいていました。 symfonyのスキーマファイルに出てくるowningSideってなんだろう http://twitter.com/s_kaneda/status/10203798714@hidenorigoto ありがとうございます!外部キーが主キーになって…
レコードをソート可能かつ、各レコードのソート順変更などの操作を可能にする「Sortable」というビヘイビアがありますが、いくつかの実装が存在するようです。 Doctrine公式に登録されているextension http://www.doctrine-project.org/extension/Sortable …
昨日、Twitterにて@odasukeさんがつぶやかれていたのを見て、その後気になったままだったので状況を調べてみました。結論としては、ごく最近symfony 1.3/1.4のDoctrineプラグインのコードが変更された影響だった、ということです。 該当する変更箇所:http:/…
以前、Doctrine(symfony 1.3 alpha + Doctrine)について調べた時、生成されたモデルクラスに各フィールド値に対応するアクセサメソッドが存在しない、ということを書きました。 Doctrineメモ - しんふぉにゃん 私は普段Eclipse + PDTでコード補完に頼りなが…
# 2009/09/23 22:45 Fivestarさんからコメントで教えていただいたDoctrineのINSERTについてテスト1に追記しました。 # 2009/09/24 01:03 Fivestarさんからコメントで教えていただいたDoctrineのQueryCacheについてテスト3に追記しました。 symfonyとしては「…
ぼちぼちDoctrineを使い始めようということで趣味プロジェクトをsymfony1.3+Doctrineで作り始めました。 Doctrineについての知識が全くないので、Propelとの違いなど(初歩的なことから)個人的にメモしていきます。 symfony 1.x legacy website 注)symfony…