FuelPHPのORMがダメすぎる。。。その2
2016-11-24
まさかその2を書くことになるとは(/_\*)
FuelPHP の ORM がキャッシュ機構を持っていて、それがとても使いにくくて意味が分からん、、、と前々から思っていました。
例えば、serial 設定の primary key の id は拾ってくれますが、それ以外の DB 側で INSERT 時に default で設定される類の値は拾ってくれないし。
※これはもしかしたら自分の実装方法が悪いのかもしれないけど
キャッシュされたデータについては、もちろん他の手段で同じレコードが変更されてしまえば認識不能で差違が出てしまうし、なんでわざわざこんな機能がデフォルトでオンになっているんだ??と思います。
それに加えて今回分かったのが、ORM オブジェクトを解放してもキャッシュが解放されないこと。
ま、よくよく考えてみれば、ORM オブジェクトを再度作成する際にキャッシュが役立つわけだから、まあ当たり前といえば当たり前ですねw
とはいえ、このキャッシュの削除されるタイミングがいまいち不明で、実際のところ全然削除されずメモリ不足で落ちる、、、、といったことが某アプリで多発しているのです(/_\*)
といったわけで、いろいろ調べた結果、、、、、結論としては明示的にキャッシュを毎回クリアするしかないかな、と。
せっかくなので、FuelPHP:ORMのキャッシュにメモを追加。
こんなアホな対応は、将来的に解放されることを切に願います(◞‸◟)