在使用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');
到目前为止,我正在构建的My 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
}
当我这样做并尝试访问message / 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。