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 に変わったことです。
下記公式ドキュメントにも記載されていますね。
- Deprecations - Http (4.1 Migration Guide - CakePHP 4.x Strawberry Cookbook)
- https://book.cakephp.org/4/en/appendices/4-1-migration-guide.html#http
下記投稿でも紹介しましたが、元々 CakePHP 4.0 を使っていて composer update を行うと、CakePHP 4.1 になることがあるので注意が必要ですね。
- CakePHP 4.1 を 4.0 にダウングレードする方法 / Twin Turbo Computing
- https://tt-computing.com/cake4_1-to-4_0