CakePHP3:3.5移行の際のポイント

マイナーチェンジのようで、結構大きな変更があるので以下にまとめています(随時更新)

  • インストール

3.4の場合は、

composer create-project --prefer-dist cakephp/app:3.4.* app

と指定したところ、3.4.2が入りました。

3.5の場合は、

composer create-project --prefer-dist cakephp/app app

で3.5.1が入ります。

  • Bakeした際のEntity

3.4では、このようにidを除く全カラムがアクセス可能になっています:

    protected $_accessible = [
        '*' => true,
        'id' => false
    ];

3.5では、カラム名が明示的にアクセス許可されています:

    protected $_accessible = [
        'user_id' => true,
        'title' => true,
        'slug' => true,
        'body' => true,
        'published' => true,
        'created' => true,
        'modified' => true,
        'user' => true,
        'tags' => true
    ];

3.5でカラム追加をした場合、DBへのカラム追加とTableへのバリデーション追加に加え、 Entityにもカラム追加をしないと「カラムが保存されない」問題が発生します。

その他

項目 3.4 3.5 備考
コントローラ名の取得 $this->request->params['controller'] $this->request->getParam('controller') 3.4は複数params,3.5は単数param