CakePHP3.1.0がリリースされましたが、3.0.xからアップグレードすると、少し手を入れないといけなかったので、対応点を書いておきます。(たぶん他にもあると思いますが、私がやったものだけ。)
詳細は3.1 Migration Guideを見てください。
layoutの変更はviewBuilder()を使う
3.0では
$this->layout = 'admin';
とやってlayoutを変更していましたが、3.1では
$this->viewBuilder()->layout('admin');
と書くようになりました。
helperのloadもviewBuilder()を使う
ControllerのbeforeRenderでヘルパーをloadする場合、3.0では
$this->getView()->loadHelper('MyHelper');
としていましたが、3.1では
$this->viewBuilder()->helpers(['MyHelper']);
と書きます。
Emailのnamespaceが変わった
3.0では
use Cake\Network\Email\Email;
でしたが、3.1では
use Cake\Mailer\Email;
になりました。
あと、TestCaseで
$this->getMock('Cake\Network\Email\Email');
と書いていたのですが、methodも指定しないとclassName()
とかがcallできなくてエラーになってしまうので、
$this->getMock('Cake\Mailer\Email', ['send']);
のようにmethodを指定するようにしました。(元々そうすべきだったかも。)
Flashメッセージがstackになった
今まで書いてたものは特に変えなくて大丈夫だと思いますが、セッションの構造が変わった(配列になった)ので、TestCaseで
$this->assertSession(__('更新できませんでした'), 'Flash.flash.message');
と書いてたのを
$this->assertSession(__('更新できませんでした'), 'Flash.flash.0.message');
にしました。