未找到类"日志"



我是Lumen和Laravel的新手,但我必须使用Lumen编写REST API。我已经设置了一个控制器,但在使用记录器时遇到问题。我遵循了文档:流明文档

这是我的控制器应用程序/Http/Controllers/DocumentsController.php:

namespace AppHttpControllers;
use IlluminateHttpRequest;
use Log;
class DocumentsController extends Controller
{
    public function index()
    {
        Log::info('test');
        return response()->json(['result' => 'Oh hey!']);
    }
}

如果我运行它,我会收到一个错误,说:

DocumentsController中的致命错误异常.php第 22 行:找不到类"日志"

所以日志立面似乎有问题(不太确定这些在拉拉维尔/流明中是如何工作的)。

但是,如果我更改 Log::info() 调用,手动将日志服务从 DI 容器中提取出来,那么它可以工作:

    $app = app();
    $app->make('log')->info('test');

关于为什么官方文档中描述的立面方法不起作用的任何想法?

Doh,当然在发布这个问题 5 分钟后,我想通了。我在应用程序基类(vendor/laravel/lumen-framework/src/Application.php)中注意到以下别名:

public function withFacades()
{
    Facade::setFacadeApplication($this);
    if (! static::$aliasesRegistered) {
        static::$aliasesRegistered = true;
        class_alias('IlluminateSupportFacadesAuth', 'Auth');
        class_alias('IlluminateSupportFacadesCache', 'Cache');
        class_alias('IlluminateSupportFacadesDB', 'DB');
        class_alias('IlluminateSupportFacadesEvent', 'Event');
        class_alias('IlluminateSupportFacadesGate', 'Gate');
        class_alias('IlluminateSupportFacadesLog', 'Log');
        class_alias('IlluminateSupportFacadesQueue', 'Queue');
        class_alias('IlluminateSupportFacadesSchema', 'Schema');
        class_alias('IlluminateSupportFacadesURL', 'URL');
        class_alias('IlluminateSupportFacadesValidator', 'Validator');
    }
}

但是,此方法从未被调用,因为在bootstrap/app中.php默认情况下$this->withFacades()调用被注释掉。

我取消了评论,现在它可以工作了。

最新更新