Hatena::ブログ(Diary)

K氏のCentOSサーバ構築メモ

2010-03-10

Deprecated:警告を非表示にする。(PHP5.3.x)

自宅環境でPEAR::HTML_QuickFormを使ったら以下のように大量に警告が出た。

f:id:Kshi:20100310181034j:image


以下、エラー一部抜粋(検索用)

・・・・・
PHP Deprecated:  Assigning the return value of new by reference is deprecated in /usr/share/pear/PEAR/HTML/QuickForm/date.php on line 410
・・・・・

バイト先の環境では出てなかったのに。調べたら・・・

PHP 5.3.0 では新しく二つのエラーレベルが加わりました。 E_DEPRECATED と E_USER_DEPRECATED です。 E_DEPRECATED エラーレベルは、 特定の機能が推奨されないことを示すのに使います。 E_USER_DEPRECATED エラーレベルは、ユーザー定義のコードで推奨されない機能、たとえば E_USER_ERROR や E_USER_WARNING のようなものを示すのに使います。

INI ディレクティブで推奨されないものは以下の通りです。 これらのひとつ以上を有効にすると、起動時 E_DEPRECATED エラーが発生します

php.netでこんな感じで発表されていた。非推奨な関数は使いたくないけど、PEARを使わないのもめんどうなので、現状回避策として、エラー表示をphp.iniを編集して非表示にすることに。

php.iniの設定で警告を回避!

$ vim /etc/php.ini
・・・・・

error_reporting  =  E_ALL
;↓変更
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED

・・・・・

Apacheにリロードかけて、確認する。

$ /etc/rc.d/init.d/httpd reload


f:id:Kshi:20100310180727j:image

おーエラー消えた。

参考