CakePHP2.xでStrictエラーがでる場合の対処方法

CakePHP本体は最新版を使っていれば問題有りませんが、少し古いプラグインを使った場合「Declaration of~~should be compatible with~~」といったエラーがたくさん出ることがあります。これはPHP5.4以降のエラー表示の設定に起因する問題です。

PHP5.4ではE_STRICTがE_ALLで表示されるようになったためです。
php.iniでerror_reportingをサクッと変えたくなりますが、CakePHPが上書きしてしまうため、CakePHP側を修正しなくてはなりません。

[php title=”app/Config/core.php”] Configure::write(‘Error’, array(
‘handler’ => ‘ErrorHandler::handleError’,
‘level’ => E_ALL & ~E_DEPRECATED ,
‘trace’ => true
));

//上記を下記のように書き換えます。
Configure::write(‘Error’, array(
‘handler’ => ‘ErrorHandler::handleError’,
‘level’ => E_ALL & ~E_DEPRECATED & ~E_STRICT,
‘trace’ => true
));
[/php]
これで古めのPluginを使用してもStrictエラーに悩まされることは無くなります。

スポンサーリンク
レクタングル大