PHP7でcakephp2系を動かしてみたらエラーが出た。
結論だけみたい人は、「CakePHPのバージョンを上げよう」からみるとスムーズです。
- Error: Cannot use 'String' as class name as it is reserved
- Error: Uncaught TypeError: Argument 1 passed to ErrorHandler::handleException() must be an instance of Exception
- CakePHPのバージョンを上げよう
- Validation::notEmpty() is deprecated.
Error: Cannot use 'String' as class name as it is reserved
Stringというクラス名を使ってはいけないと怒られていますね。
なのでとりあえず、クラス名をStringCakeとしたらエラーは出なくなりました。
Error: Uncaught TypeError: Argument 1 passed to ErrorHandler::handleException() must be an instance of Exception
あら、こんどは根本的なエラー。
PHP7ってたしかエラーハンドル系をかなりいじったんだっけ・・・。
CakePHPのバージョンを上げよう
cakephpは基本的にライブラリ(lib)をいじっていなければそのままバージョンを上げることが可能なはずです。
なので、下記から最新の2系をダウンロードしてきて、自分のローカルのlibのバックアップを取った上で突っ込んでみました。
エラーが消えた!!
ただこんどはバージョンアップにおける問題が・・・。
Validation::notEmpty() is deprecated.
Deprecated (16384): Validation::notEmpty() is deprecated. Use Validation::notBlank() instead. [CORE/Cake/Utility/Validation.php, line 60]
notEmptyじゃなくて、notBlankを使ってくださいね。
だ、そうですので、一括置換!!
これで一応投稿までの一通りができるようになりました!
PHPのバージョンアップは怖いですね・・・。