Php8.0でワークフロー追加ページがエラーになる。

concrete 9.1.1にてワークフローを追加するシステムページ(dashboard/system/permissions/workflows/add) はphp 8.0 以上の環境ではエラーとなり追加が一切できません。以下のエラーが発生します。

Whoops \ Exception \ ErrorException (E_WARNING)
Undefined variable $wfName
/var/www/html/concrete/single_pages/dashboard/system/permissions/workflows.php 53

ソースを見てみると$wfNameがコントローラー、エレメントで定義されてなさそうです。8.0以上は未定義の変数を使用すると、warningで怒られます。7.4ではnoticeですが、noticeを無視or非表示にしていたのでエラーは何も表示されないと思います。

【再現方法】
私はdocker のphp:8.1-apacheというイメージを使用して、8.1,8.0,7.4で確認を行いました。error_reportingおよびconcreteの設定はいじっていません。イメージはそのまま導入し、concreteもインストール直後にワークフローの追加を行いました。

【対策について】
今回は開発環境だったので7.4に落としてひとまずOKでした。しかし最終的には推奨の8.1の環境にインストールする予定ですのでそれでも問題ない方法が必要です。ユーザーサイドでできることはwarningでもエラーが出ないようにerror_repotingの設定を変更する場合、どのようにすればよろしいでしょうか?

concrete.debug.error_reportingを1にすると一応上記のエラーはでなくなりました。

1 Like

@junmedia2 ありがとうございます。

うむむむ。厄介そうなエラーですね。

concrete.debug.error_reportingを1にすると一応上記のエラーはでなくなりました。

ありがとうございます。
ちょっとおかしな挙動ですね。

時間ができた時に見てみます。

@junmedia2

ウチの社内で見つけてくれました。

ちょうど2日前に GitHub で修正されていました。
9.1.2 で治るようです。

先にパッチ当てたい場合はこちらです

1 Like

上記の通り、当エラーはphp8の環境でconcrete 9.1.1のバージョンで発生します。
9.1.2にて修正されました。

Fixed error adding basic workflow in PHP 8.1.