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');

これまでに構築しているメッセージ 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