Concrete5の5.7系から5.8系にあげてphp7対応してみた。

手短に、困ったことだけ書きます!

5.7系から5.8系にアップデートする際、一気に行うと不具合が起きるそうで、以下のような注意が出ています。

  • 8.5.0以上にアップデートする前に、5.7.5.13にアップデートしてください。
  • 5.7.3未満のバージョン5.7をお使いの場合は、5.7.4以降にアップデートする前に、先に5.7.3にアップデートしてください。
https://concrete5-japan.org/help/5-7/developer/installation/upgrading-concrete5

単純にアップデートして、php5系からphp7にアップデートしたところ、

記事の編集画面にて、以下のエラー発生。

Declaration of Concrete\Package\EasyImageGallery\Block\EasyImageGallery\Controller::registerViewAssets() should be compatible with Concrete\Core\Block\BlockController::registerViewAssets($outputContent = ”)

うん。よくわからない。php7にconcrete5があってないのか?!

と思っていたら、以下のような記事を発見!

ようは、EasyImageGalleryのphp対応が遅れているせいなので、コードを修正すると治りました。

php7 issues? – concrete5

前述のように、解決策は packages/[パッケージ名]/blocks/[ブロック名]/controller.phpを

開いて、次のコード を検索することです。

public function registerViewAssets ( )

次のように変更します。

public function registerViewAssets ( $outputContent  =  '' )

例:
Easy Image Gallery 1.3.1
Honest Websites Back To Top 0.9.4
Concrete5.7.5.6, PHP 7