以前のバージョンから BEAR 0.8.5 またはそれ以降に更新する際は、下記の移行上の注意点に注意すべきです。
リソースのLazyロードを実現するためにリソースリクエストの戻り値がBEAR_Ro
からBEAR_Ro_Prototype
という型に変更されました。BEAR_Ro
は*リソース状態*を表すオブジェクトですが、BEAR_Ro_Prototype
は*リソースリクエスト*のオブジェクトです。リクエストやリソースセットのセットをいつ行うか(lazy or eager)というオプションを選択できるようになったことによる変更です。
これに伴ないCRUD操作のメソッド( read(), update(), create(), delete() )だけではそのリソースリクエストは実行は完了しなくなりました。必ずリソースリクエストのメソッドチェーンの後に以下のいずれかのメソッドが必要となります。
- getBody()
- getRo()
- request()
※リソースリクエスト*から*リソース状態*にするアクションがないとリソース状態が利用できません。 下記のコードでは実リクエストが行われません。
$this->_resource->update($params); //これではダメ
下記のようにrequest()が必要です。
$this->_resource->update($params)->request();
「足あと更新」など画面表示や、その後の操作に影響ないものはrequestOnShutdown()メソッドでPHPのShutdown時に実行することができます。DBのアクセスする前に画面表示をすることで、ページ表示のレスポンスを向上します。
$this->_resource->update($params)->requestOnShutdown();
中身がreturn $this;
であったこのメソッドは廃止されました。