PHP 5.5.9 以上が要求されるのが一番大きかった(私には)のですが、バージョンアップに伴って他にも修正しなければならないところが少しあったので書いておきます。(これ以外にもあると思いますが、私がやったことだけ)
FormHelperのcreate()でactionを指定しているものをurlに変える
テンプレートでFormHelper::create()を使って
<?= $this->Form->create($user, ['action' => 'index']) ?>
としてurlのactionを指定していたものは、
<?= $this->Form->create($user, ['url' => ['action' => 'index']]) ?>
に変更する必要があります。
Entityで仮想フィールドを定義したものは、スネークケースで取得する
CakePHP3.1までは、Entityで
protected function _getFullName()
{
return $this->_properties['first_name'] . ' ' . $this->_properties['last_name'];
}
のように定義した仮想フィールドは、$user->fullName
でも $user->full_name
でも取れていましたが、3.2では $user->full_name
じゃないとダメになりました。(元々キャメルケースで書くのは間違いだったのでしょうね…)
おまけ(date型とdatetime型のデータについて)
前に少し書きましたが、Chronosが導入されて、DBのTableからデータを取得した時に返ってくるEntityのdate型やdatetime型の値のオブジェクトが変わりました。
CakePHP3.1までは、date型もdatetime型もCake\I18n\Time
オブジェクトが返ってきていましたが、3.2では、date型はCake\I18n\FrozenDate
、datetime型はCake\I18n\FrozenTime
になっています。
FrozenDateはCake\Chronos\Date
を、FrozenTimeはCake\Chronos\Chronos
をそれぞれ継承しているので、date型のものはタイムゾーンがUTCのオブジェクトになります。
なので、Cake\I18n\Time
やCake\Chronos\Chronos
で生成した日付(設定されているタイムゾーンになる)と比較している場合などは注意が必要です。
date型のデータと日付を比較する場合は、Cake\Chronos\Date
で生成したものと比較した方が良さそう。