CakePHP3.10へアップデート

CakePHP3からCakePHP5へ一気にアップグレードするツールは無いので、まずはCakePHP4へアップグレードすることにした。
CakePHP4系の最小動作可能PHPは7.4なので、アップデート前後で動作できるPHP7.4環境で作業を行うことに。

移行ガイドでは3.9までしかなったが、3.10が存在するので、ガイドを参考に3系最終バージョンの3.10へアップデート。


[webmaster@almalinux8 iwl]$ php /usr/local/bin/composer require --update-with-dependencies "cakephp/cakephp:3.10.*"

---中略---

> Cake\Composer\Installer\PluginInstaller::postAutoloadDump
1 package you are using is looking for funding.
Use the `composer fund` command to find out more!
Found 12 security vulnerability advisories affecting 4 packages.
Run "composer audit" for a full list of advisories.

これで3.10にアップデートは成功(...と思った)

動作の検証を行うために、システムのトップページを表示させようとしたところ、「Property _transportConfig does not exist」エラーが発生。

どうやらdebug_kitのモジュールで発生しているようなので、app.phpを編集してデバックモードをオフにする。

    'debug' => filter_var(env('DEBUG', false), FILTER_VALIDATE_BOOLEAN),

オフにしたところ、正常に動作する様になった。
しかし、デバックが使えないと今後問題が起こったときに支障が出そうなので、デバックモードをオンで使えるように原因を探ることに。

エラー箇所の「ROOT/vendor/cakephp/debug_kit/src/Panel/MailPanel.php, line 43」を頼りに、今インストールされているdebug_kitのコードと

git上にある「https://github.com/cakephp/debug_kit/blob/3.x/src/Panel/MailPanel.php」のコードを比較したところ呼び出しているプロパティ名が異なっていたため、debug_kitのみをインストール。

念のため、以前あったdebug_kitはリネームしておき、温存することとした。

[webmaster@almalinux8 iwl]$ php /usr/local/bin/composer require --dev cakephp/debug_kit:"~3.0"

---中略---

> Cake\Composer\Installer\PluginInstaller::postAutoloadDump
1 package you are using is looking for funding.
Use the `composer fund` command to find out more!
Found 12 security vulnerability advisories affecting 4 packages.
Run "composer audit" for a full list of advisories.

しかし、挙動に変化は無く、改めてコードを比較したが、以前と同じ(異なった内容)だったので、gitから直接debug_kitのファイルをダウンロードしてROOT/vendor/cakephp下に配置。

すると、状況がPluginエラーに変化。

debug_kit自体更新されたことは確認できたが、新たなる問題に対応。
debug_kitの配置場所を変えたり、コードを直してみたけど、Pluginがロードできない状況に変化は無く、「CakePHP4へアップグレードすれば、新しいdebug_kitも入る」ことに期待して、debug_kit問題はそのままにして、作業を進めることにした。