PHP、フレームワークとして使用しているCakePHPも含めてバージョンアップする方法を検討する。
大きな改修作業になりがちなバージョンアップ作業をAIによって作業を簡略化できないかも併せて確認する。
↑の記事で構築した環境でバージョンアップ作業を行います。
おおまかな想定手順
対象洗い出し
PHPのバージョンアップによる変更箇所の洗い出し
公式ページにPHPバージョンによる変更点、下位互換性のないものなどが記載されているので、
そちらを参考に、Linuxコマンドのgrepなどによってソースコードを検証し、変更箇所を洗い出していく。
CakePHPのバージョンアップによる変更箇所の洗い出し
フレームワークの方も同じく公式ページに記載があると思うので、そちらを見ながら洗い出していく。
CakePHPの公式ページはこちらを参考に同じくgrepなどで洗い出していく。
3.3から3.5へのアップグレードコマンド実行
本来は3.4にバージョンアップしてから3.5への対応をした方がいいのかもしれませんが、
3.4はバージョンアップコマンドが存在しないため、工数削減のため一気に3.5へのバージョンアップコマンドを叩いてみます。
私はローカル端末でDockerで起動しているため、Dockerファイルに以下の内容でコマンドを追加します。
#!/bin/sh
# apache起動
httpd -k start
# composerインストール
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
echo y | php /var/www/html/composer.phar require --update-with-dependencies "cakephp/cakephp:3.5.*"
「echo y」はy/nを自動で回答するためのものです。
実行すると以下のようなエラーが出力されました。
Attaching to webserver-1
webserver-1 | Installer verified
webserver-1 | All settings correct for using Composer
webserver-1 | Downloading...
webserver-1 | Failed to decode zlib stream
webserver-1 | For additional security you should declare the allow-plugins config with a list of packages names that are allowed to run code. See https://getcomposer.org/allow-plugins
webserver-1 | This warning will become an exception once you run composer update!
webserver-1 | Loading "aura/installer-default" which is a legacy composer-installer built for Composer 1.x, it is likely to cause issues as you are running Composer 2.x.
webserver-1 | ./composer.json has been updated
webserver-1 | For additional security you should declare the allow-plugins config with a list of packages names that are allowed to run code. See https://getcomposer.org/allow-plugins
webserver-1 | This warning will become an exception once you run composer update!
webserver-1 | Loading "aura/installer-default" which is a legacy composer-installer built for Composer 1.x, it is likely to cause issues as you are running Composer 2.x.
webserver-1 | Running composer update cakephp/cakephp --with-dependencies
webserver-1 | Loading composer repositories with package information
webserver-1 | Updating dependencies
webserver-1 | Your requirements could not be resolved to an installable set of packages.
webserver-1 |
webserver-1 | Problem 1
webserver-1 | - Root composer.json requires google/cloud ^0.180.0, found google/cloud[v0.180.0] but the package is fixed to v0.138.0 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
webserver-1 |
webserver-1 | Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
webserver-1 |
webserver-1 | Installation failed, reverting ./composer.json and ./composer.lock to their original content.
webserver-1 exited with code 2
エラーメッセージにあるオプション「–with-all-dependencies」は思わぬバージョンアップがあることもあるそうなので、一旦使用しないでおきます。
echo y | php /var/www/html/composer.phar require --update-with-dependencies "cakephp/cakephp:3.5.*" "google/cloud:v0.180.0"
↑のように後ろに「依存パッケージ:バージョン」みたいな追記をすると解消されるらしい。
追記して再実行。
無事、CakePHPの画面が表示されました。
3.5から3.6へのアップグレードコマンド実行
続いて、3.6へのアップグレードコマンドです。
php composer.phar require --update-with-dependencies "cakephp/cakephp:3.6.*"
エラーが出ました。
In PluginManager.php line 786:
cakephp/plugin-installer contains a Composer plugin which is blocked by you
r allow-plugins config. You may add it to the list if you consider it safe.
You can run "composer config --no-plugins allow-plugins.cakephp/plugin-inst
aller [true|false]" to enable it (true) or disable it explicitly and suppre
ss this exception (false)
See https://getcomposer.org/allow-plugins
require [--dev] [--dry-run] [--prefer-source] [--prefer-dist] [--prefer-install PREFER-INSTALL] [--fixed] [--no-suggest] [--no-progress] [--no-update] [--no-install] [--no-audit] [--audit-format AUDIT-FORMAT] [--update-no-dev] [-w|--update-with-dependencies] [-W|--update-with-all-dependencies] [--with-dependencies] [--with-all-dependencies] [--ignore-platform-req IGNORE-PLATFORM-REQ] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [-m|--minimal-changes] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--apcu-autoloader-prefix APCU-AUTOLOADER-PREFIX] [--] [<packages>...]
よくわからなかったので以下のコマンドを実行してみます。
/var/www/html/composer.phar audit
cakephp/plugin-installer contains a Composer plugin which is currently not in your allow-plugins config. See https://getcomposer.org/allow-plugins
Do you trust "cakephp/plugin-installer" to execute code and wish to enable it now? (writes "allow-plugins" to composer.json) [y,n,d,?]
信用できるならallow-pluginsに設定する必要がありそう。
composer config --no-plugins allow-plugins.cakephp/plugin-installer true
これを実行して、再度ビルド
Action required!
The CakePHP plugin installer has been changed, please update your application composer.json file to add the post-autoload-dump hook.
See the changes in https://github.com/cakephp/app/pull/216 for more info.
こんなエラーが出ました。
エラーメッセージに出力されているURLに従って以下を実行
/var/www/html/composer.phar require cakephp/plugin-installer
composer.jsonに以下の行を追加
"scripts": {
〜〜〜〜〜〜〜〜〜〜〜
"post-autoload-dump": "Cake\\Composer\\Installer\\PluginInstaller::postAutoloadDump"
},
↑を追加したら、消せみたいなメッセージが出てきたので、↑は削除
すると、いろいろ出てきたけど順番にエラーを潰していこうと思います。
まずこれ
Cannot use cakephp/plugin-installer's latest version 2.0.1 as it requires php >=8.1 which is not satisfied by your platform.
PHPを8.1以上に上げろと言ってるので、上げてみます。
Dockerfileを以下のように変更
# ベースイメージ
FROM rockylinux:8.9
# 初期プロセス設定
# RUN ["/sbin/init"]
# Remiリポジトリのインストール
RUN dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
# Remiリポジトリの有効化
RUN dnf config-manager --set-enabled remi
# PHP8.1有効化
# RUN dnf -y module enable php:remi-7.4
RUN dnf -y module enable php:remi-8.1
# PHPの拡張モジュール追加
RUN dnf -y install php php-curl php-zip php-mbstring php-mysqlnd php-mcrypt php-xml php-intl unzip php-pdo php-mysql
# systemd
# RUN dnf install -y systemd
# ポート8080でアクセス可能な状態に設定
EXPOSE 80
EXPOSE 443
EXPOSE 8080
# apacheインストール
RUN dnf -y install httpd
# apache設定ファイルをコンテナ上に格納
COPY ./virtualhost.conf /etc/httpd/conf.d/
COPY ./00-mpm.conf /etc/httpd/conf.modules.d/
COPY ./httpd.conf /etc/httpd/conf/
COPY ./localhost+1-key.pem /etc/ssl/private/
COPY ./localhost+1.pem /etc/ssl/private/
COPY ./init.sh /etc/init.sh
#COPY ../crmsystem/* /var/www/html
# cakephpインストール
WORKDIR /var/www/html
# 初期化スクリプト実行
CMD [ "sh","/etc/init.sh"]
とりあえず↑のエラーは消えました。
webserver-1 | Your requirements could not be resolved to an installable set of packages.
webserver-1 |
webserver-1 | Problem 1
webserver-1 | - phpunit/phpunit is locked to version 5.7.27 and an update of this package was not requested.
webserver-1 | - phpunit/phpunit 5.7.27 requires php ^5.6 || ^7.0 -> your php version (8.1.33) does not satisfy that requirement.
webserver-1 | Problem 2
webserver-1 | - cakephp/cakephp is locked to version 3.6.15 and an update of this package was not requested.
webserver-1 | - cakephp/cakephp 3.6.15 requires zendframework/zend-diactoros ^1.4.0 -> satisfiable by zendframework/zend-diactoros[1.8.7].
webserver-1 | - zendframework/zend-diactoros 1.8.7 requires php ^5.6 || ^7.0 -> your php version (8.1.33) does not satisfy that requirement.
違うところでエラーになったので、元に戻す。
先ほどのやつは致命的なやつではなさそうなので、とりあえず放置して他のエラーにあたります。
画面表示までは至ってないですが、バージョンが変われば解消されそうなので一旦次のバージョンに上げます。
3.6から3.7へのアップグレードコマンド実行
続いて3.7へバージョンアップします。
php composer.phar require --update-with-dependencies "cakephp/cakephp:3.7.*"
実行すると3.6のときと同じようなエラーが出てきましたが、バージョンは上げられたっぽいので突き進みます。
3.7から3.8へのアップグレードコマンド実行
続いて3.8へ
php composer.phar require --update-with-dependencies "cakephp/cakephp:3.8.*"
実行すると3.6のときと同じようなエラーが出てきましたが、バージョンは上げられたっぽいので突き進みます。
3.8から3.9へのアップグレードコマンド実行
続いて3.9へ
php composer.phar require --update-with-dependencies "cakephp/cakephp:3.9.*"
実行すると3.6のときと同じようなエラーが出てきましたが、バージョンは上げられたっぽいので突き進みます。
これで3.xの最新バージョンまで上がりましたので、ついに4.0へのバージョンアップです。
3.9から4.0へのアップグレードコマンド実行
メジャーバージョンのバージョンアップですので、今までの手順とは若干異なりそうです。
また、区切りがいいので可能であれば画面表示できるところまでエラーを潰したいなと思ってます。
PHPは事前に7.2に上げておきます。
私の場合、Dockerfileにバージョンの記載があるのでそこの修正になりますが、
元々7.2であったため今回は対応不要です。
アップグレードツールをインストール
# アップグレードツールをインストール
git clone https://github.com/cakephp/upgrade
cd upgrade
git checkout 4.x
composer install --no-dev
ロケールファイル、テンプレートファイルの名前を変更
# ロケールファイルの名前を変更する
bin/cake upgrade file_rename locales /var/www/html
# テンプレートファイルの名前を変更する
bin/cake upgrade file_rename templates /var/www/html
ReactorによるCakePHPおよびPHPUnitのリファクタリング
# ReactorによるCakePHPおよびPHPUnitのリファクタリング
bin/cake upgrade rector --rules phpunit80 /var/www/html/tests
bin/cake upgrade rector --rules cakephp40 /var/www/html/src
今まで通り、CakePHPの依存関係のアップデート
# CakePHPの依存を関係をアップデート
php composer.phar require --dev --update-with-dependencies "phpunit/phpunit:^8.0"
php composer.phar require --update-with-dependencies "cakephp/cakephp:4.0.*"
実行すると出力されたエラーは以下の通り
Problem 1
- Root composer.json requires cakephp/cakephp 4.0.*, found cakephp/cakephp[4.0.0, ..., 4.0.10] but these were not loaded, likely because it conflicts with another require.
Problem 2
- narendravaghela/cakephp-mailgun is locked to version v1.0.6 and an update of this package was not requested.
- narendravaghela/cakephp-mailgun v1.0.6 requires cakephp/cakephp >=3.0.0 <4.0 -> found cakephp/cakephp[3.0.0, ..., 3.10.5] but it conflicts with your root composer.json require (4.0.*).
Problem 3
- cakephp/debug_kit is locked to version 3.9.5 and an update of this package was not requested.
- cakephp/debug_kit 3.9.5 requires cakephp/cakephp ^3.2.7 -> found cakephp/cakephp[3.2.7, ..., 3.10.5] but it conflicts with your root composer.json require (4.0.*).
Problem 4
- cakephp/bake is locked to version 1.2.14 and an update of this package was not requested.
- cakephp/bake 1.2.14 requires cakephp/cakephp >=3.2.0 <4.0.0 -> found cakephp/cakephp[3.2.0, ..., 3.10.5] but it conflicts with your root composer.json require (4.0.*).
Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
Problem2:mail-gunのバージョンとCakePHPのバージョンがあってなさそう。
使用してない気もするが、こちらを参考にCakePHP4.0にあってるのは5.0.1っぽいのでバージョンを上げてみる。
依存関係のコマンドの後ろに追記します。
echo y | php composer.phar require --update-with-dependencies "cakephp/cakephp:4.0.*" "narendravaghela/cakephp-mailgun: ^5.0.1"
すると、mail-gunの部分でエラーは出ましたが、以下のように変わりました。
Problem 2
- Root composer.json requires narendravaghela/cakephp-mailgun ^5.0.1 -> satisfiable by narendravaghela/cakephp-mailgun[5.0.1].
- narendravaghela/cakephp-mailgun 5.0.1 requires cakephp/cakephp ^4.0.0 -> found cakephp/cakephp[4.0.0, ..., 4.6.2] but these were not loaded, likely because it conflicts with another require.
こちらは5.0.1に変わったけど、CakePHPが4.0.0に変わってないのでエラーになっているっぽいので、
他のエラーが解消されれば併せて解消されそうなので、一旦、他のエラーを確認します。
Problem3も同じくdebug_kitのバージョンがCakePHP4と合ってなさそうなので変更します。
公式サイトを確認すると、CakePHP4用はそのまま4.0で良さげなのでそのようにします。
依存関係のコマンドにさらに追記します。
echo y | php composer.phar require --update-with-dependencies "cakephp/cakephp:4.0.*" "narendravaghela/cakephp-mailgun: ^5.0.1" "cakephp/debug_kit: ~4.0"
実行するとdebug_kitのエラーはmail-gunと同じようなエラーに変わりました。
Problem 4
- Root composer.json requires cakephp/debug_kit ~4.0 -> satisfiable by cakephp/debug_kit[4.0.0, ..., 4.10.2].
- cakephp/debug_kit[4.0.0, ..., 4.2.0] require cakephp/cakephp ^4.0 -> found cakephp/cakephp[4.0.0, ..., 4.6.2] but these were not loaded, likely because it conflicts with another require.
- cakephp/debug_kit[4.10.0, ..., 4.10.2] require cakephp/cakephp ^4.5.0 -> found cakephp/cakephp[4.5.0, ..., 4.6.2] but it conflicts with your root composer.json require (4.0.*).
- cakephp/debug_kit[4.3.0, ..., 4.3.9] require cakephp/cakephp ^4.1 -> found cakephp/cakephp[4.1.0, ..., 4.6.2] but it conflicts with your root composer.json require (4.0.*).
- cakephp/debug_kit[4.4.0, ..., 4.4.4] require cakephp/cakephp ^4.2.0 -> found cakephp/cakephp[4.2.0, ..., 4.6.2] but it conflicts with your root composer.json require (4.0.*).
- cakephp/debug_kit[4.5.0, ..., 4.7.1] require cakephp/cakephp ^4.3.0 -> found cakephp/cakephp[4.3.0, ..., 4.6.2] but it conflicts with your root composer.json require (4.0.*).
- cakephp/debug_kit[4.8.0, ..., 4.9.6] require cakephp/cakephp ^4.4.0 -> found cakephp/cakephp[4.4.0, ..., 4.6.2] but it conflicts with your root composer.json require (4.0.*).
ここで、そもそもDocker環境にgitがインストールされていないことに気づいたので、Dockerfileに追記
# gitのインストール
RUN dnf -y install git
するとエラーは以下のみになりました。
Problem 1
- Root composer.json requires php ^8.0 but your php version (7.4.33) does not satisfy that requirement.
Problem 2
- Root composer.json requires symfony/string ^6.0 -> satisfiable by symfony/string[v6.0.0, ..., v6.4.21].
- symfony/string[v6.0.0, ..., v6.0.19] require php >=8.0.2 -> your php version (7.4.33) does not satisfy that requirement.
- symfony/string[v6.1.0, ..., v6.4.21] require php >=8.1 -> your php version (7.4.33) does not satisfy that requirement.
依存パッケージに必要なPHPバージョンは8っぽいので、PHPバージョンを8.1に上げます。
Dockerfileを以下のように更新
RUN dnf -y module enable php:remi-8.1
これで再実行すると、Problemの記述はなくなりましたが、ビルド&アップコマンドが落ちてしまいます。
抜粋するとこんな感じ
webserver-1 | - Installing cakephp/debug_kit (4.2.0): Extracting archive
webserver-1 | - Installing narendravaghela/cakephp-mailgun (5.0.1): Extracting archive
23/24 [==========================>-] 95% Update of cakephp/cakephp failed
24/24 [============================] 100%
webserver-1 | In RecursiveDirectoryIterator.php line 48:
webserver-1 |
webserver-1 | RecursiveDirectoryIterator::__construct(/var/www/html/upgrade/vendor/cakeph
webserver-1 | p/cakephp): Failed to open directory: No such file or directory
webserver-1 |
webserver-1 |
webserver-1 | require [--dev] [--dry-run] [--prefer-source] [--prefer-dist] [--prefer-install PREFER-INSTALL] [--fixed] [--no-suggest] [--no-progress] [--no-update] [--no-install] [--no-audit] [--audit-format AUDIT-FORMAT] [--update-no-dev] [-w|--update-with-dependencies] [-W|--update-with-all-dependencies] [--with-dependencies] [--with-all-dependencies] [--ignore-platform-req IGNORE-PLATFORM-REQ] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [-m|--minimal-changes] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--apcu-autoloader-prefix APCU-AUTOLOADER-PREFIX] [--] [<packages>...]
webserver-1 |
webserver-1 | No security vulnerability advisories found.
webserver-1 | Found 2 abandoned packages:
webserver-1 | +--------------------------------------+----------------------------------------------------------------------------------+
webserver-1 | | Abandoned Package | Suggested Replacement |
webserver-1 | +--------------------------------------+----------------------------------------------------------------------------------+
webserver-1 | | laminas/laminas-zendframework-bridge | none |
webserver-1 | | phpunit/php-token-stream | none |
webserver-1 | +--------------------------------------+----------------------------------------------------------------------------------+
webserver-1 exited with code 2
最後に出力されているセキュリティ系のエラーが怪しいので、そちらから確認
その前に、よくよくみるとcakephpのバージョンを4.6.2から4.0.10に下げてるようなログが出力されていたので、こちらは公式ページのCakePHPの最新の4に最初からしてみます。
webserver-1 | - Downgrading cakephp/cakephp (4.6.2 => 4.0.10): Extracting archive
以下のコマンドの2箇所をバージョンに合わせて変更します。
bin/cake upgrade rector --rules cakephp44 /var/www/html/src
php /var/www/html/composer.phar require --update-with-dependencies "cakephp/cakephp:4.4.*"
すると、エラーが減りました。
Found 1 abandoned package:
+--------------------------+----------------------------------------------------------------------------------+
| Abandoned Package | Suggested Replacement |
+--------------------------+----------------------------------------------------------------------------------+
| phpunit/php-token-stream | none |
+--------------------------+----------------------------------------------------------------------------------+
こちらのサイトによると、使用しない方が良いみたいなので消します。
# 不要なパッケージ削除
php /var/www/html/composer.phar remove phpunit/php-token-stream
こちらのコマンドを実行。すると以下のようなエラーが出ました。
Removal failed, phpunit/php-token-stream is still present, it may be required by another package. See `composer why phpunit/php-token-stream`.
他のパッケージで必要そうなので、コマンドを叩いて確認しろとのことなのでメッセージにあるコマンドを実行
# 不要なパッケーががなぜ必要かチェック
php /var/www/html/composer.phar why phpunit/php-token-stream
出力されたメッセージ
phpunit/php-code-coverage 7.0.17 requires phpunit/php-token-stream (^3.1.3 || ^4.0)
調べると、古いphp-code-coverageはphp-token-streamを使用しているっぽいのでバージョンアップが必要そうです。
composer.lockを見ると現在は4.0.8っぽい。
"name": "phpunit/php-code-coverage",
"version": "4.0.8",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
"r
これを9まで上げます。
PHPUnitの依存関係をアップデートするコマンドに追記します。
php /var/www/html/composer.phar require --dev --update-with-dependencies "phpunit/phpunit:^8.0" "phpunit/php-code-coverage:^9.2.5"
いろいろ試したんですが、結局PHPUnit8にはphp-code-coverage9は入らず、
インストール可能なphp-code-coverage7は、php-token-streamに依存しているっぽいので、
PHPUnit、php-code-coverageを共に9にします。
php /var/www/html/composer.phar require --dev --update-with-dependencies "phpunit/phpunit:^9.0" "phpunit/php-code-coverage:^9.0"
これで再実行したところエラーは解消されましたが、肝心のcomposer.json、composer.lockが更新されてません。
そこでCakePHPを一気に4.4に上げると書きましたが、4.0に戻します。
======================
1) ../src/Model/Table/LineCarouselColumnHistoriesTable.php:8
---------- begin diff ----------
@@ @@
*/
class LineCarouselColumnHistoriesTable extends AppTable
{
- public function initialize(array $config)
+ public function initialize(array $config): void
{
$this->hasMany('LineCarouselActionHistories', [
'className' => 'LineCarouselActionHistories',
----------- end diff -----------
すると、こんなメッセージが出て、composerファイル類も更新されました。
やっぱり一気には無理みたいです。
これでCakePHPの画面が動くようになったので、エラーを確認します。
2025-07-31 12:54:38 Error: [Cake\View\Exception\MissingTemplateException] Template file "Error/error500.ctp" is missing. (/var/www/html/vendor/cakephp/cakephp/src/Vie
w/View.php:1605)
#0 /var/www/html/vendor/cakephp/cakephp/src/View/View.php(888): Cake\View\View->_getViewFileName()
#1 /var/www/html/vendor/cakephp/cakephp/src/Error/ExceptionRenderer.php(410): Cake\View\View->render()
#2 /var/www/html/vendor/cakephp/cakephp/src/Error/ExceptionRenderer.php(375): Cake\Error\ExceptionRenderer->_outputMessageSafe()
#3 /var/www/html/vendor/cakephp/cakephp/src/Error/ExceptionRenderer.php(243): Cake\Error\ExceptionRenderer->_outputMessage()
#4 /var/www/html/vendor/cakephp/cakephp/src/Error/Middleware/ErrorHandlerMiddleware.php(120): Cake\Error\ExceptionRenderer->render()
#5 /var/www/html/vendor/cakephp/cakephp/src/Error/Middleware/ErrorHandlerMiddleware.php(102): Cake\Error\Middleware\ErrorHandlerMiddleware->handleException()
#6 /var/www/html/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Error\Middleware\ErrorHandlerMiddleware->__invoke()
#7 /var/www/html/vendor/cakephp/cakephp/src/Http/Runner.php(51): Cake\Http\Runner->__invoke()
#8 /var/www/html/vendor/cakephp/cakephp/src/Http/Server.php(97): Cake\Http\Runner->run()
#9 /var/www/html/webroot/index.php(37): Cake\Http\Server->run()
#10 {main}
Request URL: /admin/users/login
Templateファイルが存在しないと言っているので、公式サイトにあるように「/config/app.php」を修正する必要がありそうです。
'paths' => [
'plugins' => [ROOT . DS . 'plugins' . DS],
'templates' => [ROOT . DS . 'template' . DS],
'locales' => [APP . 'Locale' . DS],
],
こんな感じに修正しました。
+--------------------------------------+----------------------------------------------------------------------------------+
| Abandoned Package | Suggested Replacement |
+--------------------------------------+----------------------------------------------------------------------------------+
| laminas/laminas-zendframework-bridge | none |
+--------------------------------------+----------------------------------------------------------------------------------+
すると消えたと思ったビルドエラーが復活。
「PHPバージョンアップ検討」への1件のフィードバック