PHP5.3でDeprecatedエラーが出まくる問題の対処方法 cake.php(console)編

普通にwebで使う場合には以下のページで解決できる。

floatingdays: PHP5.3だと CakePHPで Deprecatedエラーが出まくる問題の対処方法
http://fdays.blogspot.com/2009/07/php53-cakephp-deprecated_04.html


しかしconsole実行した際、上記の修正だけだと相変わらずエラーが出る。


configue.phpを呼んでないっぽいんですよね。仕方ないのでlib\console\cake.phpの中をいじります。

<?php
//略
//138行目付近
function __initConstants() {

//略
?>

ここにini_setでE_ALLが指定されているので、ここを書き換えてみます。

<?php
if (error_reporting() > 6143) {
	ini_set('error_reporting', E_ALL & ~E_DEPRECATED);
}
?>

これでOK。

他にもconsole実行すると色々webアクセスした時とは挙動が違うのですが(特に$_SERVERの内容が結構違うのでgethostbyaddr()とかでローカルとwebの設定切り替えしてたりするとハマります)、処理を通ってる場所が違うということを覚えて気をつけると良いですね。