Esempio n. 1
0
    }
    protected function extended_callback($class, $arguments)
    {
        if (method_exists($class, self::EXTENDED_METHOD)) {
            $extended_arguments = array_merge(array($this), $arguments);
            call_user_func_array(array($class, self::EXTENDED_METHOD), $extended_arguments);
        }
    }
    static function error_handler($number, $message, $file, $line, $context)
    {
        if ($number != self::NON_STATIC_METHOD_CALL_ERROR || !preg_match('#^' . __FILE__ . '.+eval#', $file)) {
            return self::$previous_error_handler ? call_user_func_array(self::$previous_error_handler, func_get_args()) : false;
        }
    }
    static function register_error_handler()
    {
        return self::$previous_error_handler = set_error_handler(array(__CLASS__, 'error_handler'));
    }
    static function unregister_error_handler()
    {
        if (self::$previous_error_handler) {
            $handler = self::$previous_error_handler;
            self::$previous_error_handler = null;
            return set_error_handler($handler);
        } else {
            return restore_error_handler();
        }
    }
}
OpenStruct::register_error_handler();
Esempio n. 2
0
 function test_register_error_handler()
 {
     restore_error_handler();
     $get_error_handler = $this->get_error_handler;
     $handler = $get_error_handler();
     assert_equal($handler, OpenStruct::register_error_handler());
     assert_equal(array('OpenStruct', 'error_handler'), $get_error_handler());
     assert_not_equal($handler, $get_error_handler());
 }