CakePHP2 > CakePHP3で変わってたこととか
CakePHP2で作りかけのプロジェクトをCakePHP3へ移すことになったのでそれにあたって変わってたこととか気づいたことをまとめておこうと思います。
##redirectについて
<?php
public function index() {
$this->log('a');
$this->redirect('/');
$this->log('b');
}
上記処理は、CakePHP2までは
$this->log('b');
には処理は到達しませんでしたが、CakePHP3では上記処理まで進んだ後redirectします。
redirect前後などで処理を書いているものがうまく動作しませんので注意が必要です。
※redirectアクションの第三引数$exit自体がなくなってしまっています・・・。
##SessionComponentについて
CakePHP3ではSessionComponentが廃止されています。
代わりにCakeRequestにsession処理が追加されています。
CakePHP2からCakePHP3に書き換える場合は
$this->Session = $this->request->session();
でわりとちゃんと動きそうです。
##$this->Html->url()について
HtmlHelperからurlメソッドがなくなっています。
代わりにUrlヘルパーで
$this->Url->build();
で取得が可能です。
##Datetimeなどのnewについて
CakePHP3ではnamespaceが使用されているので
$date = new DateTime('2000-01-01');
と普通に書いてもDateTimeが見つかりませんとエラーが出ます。
$date = new \DateTime('2000-01-01');
とするか、先頭で
use \DateTime;
と宣言する必要があります。
##まとめ
他にもまだまだあると思いますがとりあえず気づいたところだけ先にまとめました。
(まだデータベース周りちゃんと触ってない・・・。ここが一番いろいろ変わってるはずですからね・・・。