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