4

在使用 log4php 时,我在使用 Restler 创建 API 时遇到了一些麻烦。这似乎是自动装载机的冲突,但我不确定。作为参考,我将尝试仅显示相关的代码部分,希望对您有所帮助。

在 index.php 我有:

require_once("../../config.php");
require_once("../../lib/Luracast/restler.php");
use Luracast\Restler\Restler;
$r = new Restler();
$r->addAPIClass('Messages');
$r->addAuthenticationClass('APIAuth');
$r->handle(); //serve the response

其中 config.php 是我的应用程序的加载和配置。里面是:

require_once(SYS_PATH.'/lib/log4php/Logger.php');
Logger::configure(SYS_PATH.'/../resources/log4php.xml');
$syslog = Logger::getLogger('System');

到目前为止,我正在构建的 Messages API 仅包含:

class Messages {
    function get($id) {
        return MessageService::getMessage($id);
    }
}

最后,在 MessageService 内部,我们有:

static function getMessage($msgId) {
    global $syslog;
    $syslog->debug("Getting message for id $msgId");
    //extraneous code removed
}

当我这样做并尝试访问 messages/get api 函数的 API 时,我收到以下错误:

Fatal error: Class 'LoggerLoggingEvent' not found in /path/to/lib/log4php/Logger.php on line 290

已经查看并查看了https://github.com/Luracast/Restler/issues/72 - 这似乎表明应该没有问题,但我不确定或一定做错了什么。

希望一切都有意义并且很清楚,如果我缺少某些东西,请告诉我。我正在使用 Restler 3.0RC3。

4

0 回答 0