CakePHP 4 で `httpOnly` is deprecated が出たときの対処方法と原因

はじめに

CakePHP 4.0 から 4.1 にアップデートをしたら debug.log に下記のようなエラーが出ていました。

2020-09-30 12:34:56 Notice: Deprecated (16384): Option `httpOnly` is deprecated. Use lowercased `httponly` instead. - /path/to/cakephp4/config/routes.php, line: 51

今日はその原因と対処方法をご紹介します。

今回使用した CakePHP は 4.1.4 です。

対処方法

上記エラーログの末尾にあるファイルの行数をみると、下記のように httpOnly オプションがあると思います。

$builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([
    'httpOnly' => true,
]));

この httpOnly を httponly に変更すれば OK です。

このエラーが発生する原因は CakePHP 4.1 からオプション名が httpOnly から httponly に変わったことです。
下記公式ドキュメントにも記載されていますね。

下記投稿でも紹介しましたが、元々 CakePHP 4.0 を使っていて composer update を行うと、CakePHP 4.1 になることがあるので注意が必要ですね。