次のプロジェクトはDoctrineでいくことにしたのでメモ。
Doctrine2ではマジックメソッド(findBy~)が使えなくなるらしいし、そもそも処理が重いらしいので開発では使わないことにした。
初級編
- Doctrine 公式
- The symfony and Doctrine book
これの6章にサンプルが参考になる。 - Cheat-Sheet.org - http://www.cheat-sheets.org/#Doctrine
DoctrineのCheat Sheet。常に見れる状態にしておくと良いかも知れない。version 1.1のためかわからないが、$query->fetchArray()、$query->fetchOne()とかが書かれていないのが気になる。
上級編
- Symfony 公式 - Doctrineのビヘイビアを作る
- Symfony 公式 - Doctrine のテーブル継承の活用
- アシアルブログ - Doctrineタグ
- ゆっくり*ゆっくり - Doctrineタグ
- iNNX Life – real side - Doctrineタグ
- ウノウラボ - symfony/Doctrineのキャッシュ機能
主にResult Cacheの話。一度DBから得た結果を別の場所に保存しておき、二度目からのアクセスは別の場所から結果を得ること。
デメリット - メモリを消費する。リアルタイム性が下がる。
メリット - DBへのアクセスが減ることによるCPU負荷、IO負荷の軽減。 - 八発百中 - Doctrine で Allowed memory size..
エスブレイン - DoctrineでFatal error: Allowed memory size of ???? bytes exhausted を回避する
Doctrineを使っていると消費したメモリが解放されないことがある。
また上記ブログでは書かれていないがDoctrine_Queryでfree()で解放するとき、ATTR_AUTO_FREE_QUERY_OBJECTSをtrueにしてやれば自動的に解放される。
- // ProjectConfiguration.class.php に追加
- public function configureDoctrine(Doctrine_Manager $manager)
- {
- $manager->setAttribute(Doctrine_Core::ATTR_AUTO_FREE_QUERY_OBJECTS, true);
- }
0 件のコメント:
コメントを投稿