Help us understand the problem. What is going on with this article?

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 みてると更新とまってそうな気も…^^;

RyujiAMANO
一番得意なのはXOOPS Cubeの改造。 最近はNetCommons3の開発をやってます。 CakePHP, WordPressあたりをゴニョゴニョすることも多いです。
http://ryus.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away