FuelphpでPearを利用する際にE_STRICTを部分的に無効化してしまいました。

Pocket

PHP5対応のFuelphpですが、PEARを利用したら、
Non-static method XXXX::YYYY should not be called statically
という警告文が出てしまいました。(1.6.1を現在利用)

APP_PATH. fuel/app/config/config.php の中で、


'errors' => array(
 'continue_on' => array(E_STRICT),
 ),

としてしまえばよいのですが、それだとPEAR部分以外の検証が緩くなってしまうので、どうしたものかと思っていました。
ここは思い切ってということで、Coreクラスを以下のように修正してしまいました><
Fuelが後方互換に対応したものになっていただけるとうれしいですね。ってプッシュ?いえ、やり方知らないし。
core/clases/error.php 138行目付近


public static function error_handler($severity, $message, $filepath, $line)
 {
 // don't do anything if error reporting is disabled
 if (error_reporting() !== 0)
 {
 $fatal = (bool)( ! in_array($severity, \Config::get('errors.continue_on', array())));
 // ここから追加
 if (preg_match('/pear/', $filepath))
 {
 $fatal = (bool)( ! in_array($severity, \Config::get('errors.continue_on_pear', array())));
 }
 core/clases/error.php 168行目付近
 public static function show_php_error(\Exception $e)
 {
 $fatal = (bool)( ! in_array($e->getCode(), \Config::get('errors.continue_on', array())));
 $data = static::prepare_exception($e, $fatal);
 // ここから追加
 if (preg_match('/pear/', $e->getFile()))
 {
 $fatal = (bool)( ! in_array($e->getCode(), \Config::get('errors.continue_on_pear', array())));
 if (!$fatal) {return;}
 }
 APP_PATH. fuel/app/config/config.php
 // 定義を追加。
 'errors' => array(
 'continue_on_pear' => array(E_STRICT),
 ),

というか、コードが読みやすいように、このblogになんかプラグイン入れたほうがいいですよねー プラグイン、入れました。

Pocket