こんにちは。ユナイテッドピープルの須子善彦(scommunity)です。
またもや技術TIPSの投稿になります。
やはり、メモ代わりに書く投稿が一番多くなりますね。
徐々に、他の話題についてもがんばって書いていきますね。
さて、今、新しく始まるプロジェクトのWebアプリケーションを実装しています。
その実装を行う上で、コーディングを行っているローカルのMacに1つめのデバック環境を構築していますが、そのMacに新OSである “Snow Leopard” (MacOS 10.6) をインストールしてみました。
そしたら、PHPが5.2.4から5.3.0になりました。
PHP5.3.0以降には、E_DEPRECATEDという新たなerror_reportingレベルができたため、古い構文や関数を使っているPHPを実行するとエラーメッセージが数多く表示されます。CakePHPも1.2系では、エラーメッセージが多数でます。本当は、これらの表示を有効にしたままがよいですが、自分の書いているコードではなく、フレームワークの部分であまりにも大量のエラーメッセージがでるのは、開発効率に影響がでます。従って、以下のようにすることで、E_DEPRECATEDを表示しないようにします。
php.iniや.htaccessなどで、error_reportingの値を、たとえば以下のようにする。
“E_ALL & ~E_NOTICE & ~E_DEPRECATED”
さらに、CakePHPにも手を加えなくてはなりません。
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);
}
参考にしたのは以下のサイトです。ありがとうございます!
なお、まだTimezone周りのエラーメッセージが残ります。
これに関しては、php.iniの[Date] セクションで、date.timezoneの値を設定してあげます。
date.timezone = Asia/Tokyo
この点に関して参考にしたのは以下のサイトです。ありがとうございます!