0

我有一个处理错误的类。

我想调用该类的公共静态方法来记录我的 RPC 服务器向我抛出的错误,而无需使用__LINE__命令。

像这样的东西:

class errorHander{
    public static $errors = array();
    public static function logError($message){
        self::$errors[] = array('message', NEEED SOMHOW TO GET THE calling class, get the file in which the error ocured);
    }
}

这是最重要的,无需从被调用函数传递文件位置。

所以类似的东西errorHander:logError(message, location)是不行的。

4

4 回答 4

0

logError() 只需要一个参数而不是 2。

做这样的事情:

 class errorHander{
        public static $errors = array();
        public static function logError($message){
            self::$errors[] = array('message'=>$message);
        }
    }


    errorHander:logError("This is a no-yes go") //This should log

    echo errorHander:errors[0]["message"]; //print it

希望能帮助到你

于 2012-10-05T11:22:11.150 回答
0

那么这显然取决于你有什么样的错误。

您可能想查看异常处理。PHP 的异常类提供了 getLine() 和 getTrace() 方法。这可能是您正在寻找的。

于 2012-10-05T11:10:53.153 回答
0

Exception::getLine 和 getFile 方法,我没有办法在不处理异常的情况下做到这一点。这是一个参考。 http://www.php.net/manual/en/class.exception.php

于 2012-10-05T11:14:12.900 回答
0

这可以通过 xdebug-extension 实现:http: //xdebug.org

您可以使用xdebug_call_file()xdebug_call_class()来获取您需要的信息。

请参阅文档:http: //xdebug.org/docs/all_functions

于 2012-10-05T12:25:07.620 回答