まぁタイトル通りなのですがとりあえず昔のバージョン 4 など向けに
書かれているPEAR のライブラリ をバージョン 5.3 で動かそうと思うと非常に困りましたw
どう困るかっていうと、実行した結果をブラウザで表示している結果の前に、
動いているに関わらずやたらエラー関係の表示がずらずら出るのです!ww
これはPEAR を使っていても同様みたいで、
「
Strict Standards: Non-static method 」の後に何か続く物が沢山出たりします。
私はPEAR の情報も知りたかったので、PEAR_info っていいうPEARで出来たライブラリを
もちろんPEAR を用いてダウンロードしてインストールしましたが、この時点でもう既に
このエラー関係の表示で意味不明に思っていました。
まぁw 毎度ながら長い前置きはこれぐらいにしておいて、本題です。
結果としては、エラーの出力は段階があって、出力するときにどの程度のエラーまでを
表示して伝えてくるかを選べるのがわかりました。
PHP公式ページ には
関数リファレンス >>
PHP の振る舞いの変更 >>
エラー処理 >>
定義済み定数
にエラーレベルの詳細が書いて有りますが、そこには、
説明:「コードの相互運用性や互換性を維持するために PHP がコードの変更を提案する。 」
注記:PHP 5 より
とあり、これが引っかかっている様でした。
これを変更してバージョン違いで何か表示されるのを一時的にでも
エラー表示されて邪魔にならない状況にする為に、php.iniディレクティブ のerror_reporting を
変更しておけば表示されなくなるみたいです。
一応ですが私のphp.ini ですが、
[変更前]
error_reporting = E_ALL | E_STRICT
[変更後]
error_reporting = E_ALL
です。
つまり、「 E_STRICT」をカットするとエラーメッセージでの情報は出なくなったのを確認しました。
また、実行中に変更するには、
int error_reporting ([ int $level ] ) を使えば良いみたいなので、
これもメモしておこうかと思います。
後ついでに見つけたエラーメッセージを Web サーバのエラーログ、
TCP ポート、あるいはファイルに送る
bool error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] )
もメモしておきます。
やっぱり思うのですが、PEAR のライブラリをバージョン4と5に対応した物を
公式側が作ってくれるのが一番良いと思います。
なんせライブラリなんですからそれを自己流に書き直してしまっては
ライブラリの意味がなくなってしまう部分もあると思うので、
やはり一時しのぎであっても、エラーレベルを変えて対応するのが、
素人や極度にライブラリのバージョン違いで困っていない人には良いのかなと思いました。
参考サイト
PHP5を試してみる - エラーレベル「E_STRICT」
PHP: PEARのHTTP_Request利用時のエラーについて(続き)
PHP5でe_strictエラーを出さずにPEARを使ってみる
追伸で書きました
PHP5.3以降のDeprecated のエラーorz
コメント一覧