[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フォルダ)を最新のものにしましょう

File not found · cakephp/cakephp
CakePHP: The Rapid Development Framework for PHP - Official Repository - File not found · cakephp/cakephp

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

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