[CakePHP2.x]PHP7にしたらError: Cannot use ‘String’ as class name as it is reserved エラーが出た

PHP7にしたらなぜかエラーが出た
Error: Cannot use ‘String’ as class name as it is reserved.
原因は??

原因は?

原因はPHP7は、組み込みの型名と同じクラス名・インターフェース名のが作れなくなったためです。
Stringもそれに含まれているためエラーになってしまったというわけです。
また、CakePHpでもクラスが廃止(違う名前に変更)になりました。

バージョン 2.7 で撤廃: String クラスは、2.7 で非推奨になりました。 CakeText クラスを 推奨します。 String クラスは、後方互換のために提供し、 PHP7 や HHVM との 互換性に備えて CakeText の使用をお勧めします。

CakeText - 2.x

対策は?

まずは、Cakeのライブラリ(Libフォルダ)を最新のものにしましょう

Build software better, together
GitHub is where people build software. More than 73 million people use GitHub to discover, fork, and contribute to over 200 million projects.

更新方法は、特にいじっていなければそのまま上書きすればよいはず。
また、プラグインも使っている場合はそちらも対応しましょう。
しかし、DebugKitとCakeDCが対応バージョンが見つかりませんでした。
CakeTextクラスのメソッドは名前を変えただけでStringと同じなのでクラス名を変えるだけでOKです。
数か所なのでGrepで検索してStringクラスをコールしている個所ををCakeTextに置換しました。

タイトルとURLをコピーしました