| « .htaccessでサブドメイン対応 | 胃腸の調子が悪い » |
現在開発中のCakePHP2とかcake3がどんなものか気になって、とりあえず試しに動かしてみることにしました。
ところが、cake3の方は今のテスト鯖のPHP 5.2.6環境だと「namespace cake;」のところでエラーが出てしまって動きません。
PHPの名前空間のサポートは5.3~のようです。
そこで先月末にリリースされたばかりのPHP 5.3に早速アップデート。
…すると、既存のCakePHP 1.2環境がひどいことに。
こんな感じのエラーが大量発生です。
これを出さなくするには、cake/libs/configure.phpの290行目あたりにこんな感じに3行ほど追加してやればいいそうです。
if (isset($config['debug'])) {
if ($_this->debug) {
error_reporting(E_ALL);
//この下のif文を追加する
if (error_reporting() > 6143) {
error_reporting(E_ALL & ~E_DEPRECATED);
}
しかし、これでもまだエラーが完全に消えたわけではありません。
そこで、PHP 5.3からはE_DEPRECATEDというエラー定数?ができたらしいので、php.iniを以下のように変更
error_reporting = E_ALL & ~E_NOTICE ↓ error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
とりあえずE_DEPRECATEDを無視してやればよさそうなので一時しのぎ。
E_DEPRECATED
実行時の注意。これを有効にすると、 将来のバージョンで動作しなくなるコードについての警告を受け取ることができる。
本当は出すようにした方がいいと思うけど当分はこれで放置。
参考記事: floatingdays - PHP5.3だと CakePHPで Deprecatedエラーが出まくる問題の対処方法