Posted at

NetCommons3をPHP7.2以上の環境でインストールすると内部エラーになる

More than 1 year has passed since last update.

2018/08/18現在配布中の NetCommons3.1.10 をPHP7.2環境のサーバにインストールしようとすると、管理者アカウントを入力して送信した時点で「内部エラー」になってインストールが先にすすみません。

原因は単純で、CakePHP2のMigrationsプラグインで、PHPの予約語であるobjectと同名のクラスを利用してるから。

app/tmp/logs/error.log みると下記の様なエラーが記録されてるはずです。

 Fatal Error (64): Cannot use 'object' as class name as it is reserved in [/home/xxxx/NetCommons3/vendors/cakephp/cakephp/lib/Cake/Core/Object.php, line 18]


Object から CakeObjectへ書き換える

問題のファイルは、 app/Plugin/Migrations/Lib/CakeMigration.php なのでこのファイルの1箇所を書き換えればインストールできるようになります。

17行目

class CakeMigration extends Object {

↑ を ↓ に変更。

class CakeMigration extends CakeObject {

Migrationsプラグインが対応してくれれば、一番いいんだけど https://github.com/CakeDC/migrations みてると更新とまってそうな気も…^^;