Tech Racho エンジニアの「?」を「!」に。

古いCakePHPで、簡易的にPHP5.3対応

1.2.6より古いCakePHPでは、PHP5.3以上にしたときに大量のE_DEPRECATEDエラーが出ます。

php.iniでerror_reportingを設定しても、debugモードが2の時は上書きされてしまうため、とても邪魔です。
セッションが切れたりするので、とりあえず無視したいですね。

CakePHPをアップデートするなどまともな解決法もありますが、一番簡単なのは、CakePHPのerror_reporing設定している部分を上書きしてしまうことです。

project/cake/libs/configure.php : 293

if (isset($config['debug'])) {
	if ($_this->debug) {
		//この行を編集
		//error_reporting(E_ALL);
		error_reporting(E_ALL & ~E_DEPRECATED);

		if (function_exists('ini_set')) {
			ini_set('display_errors', 1);
		}

		if (!class_exists('Debugger')) {
			require LIBS . 'debugger.php';
		}
		if (!class_exists('CakeLog')) {
			require LIBS . 'cake_log.php';
		}
		Configure::write('log', LOG_NOTICE);
	} else {
		error_reporting(0);
		Configure::write('log', LOG_NOTICE);
	}
}

強引ですが簡単ですね。


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。