【发布时间】:2017-08-16 09:09:21
【问题描述】:
我正在尝试将 Manager 类注入 Lumen 的脚趾服务容器。我的目标是拥有LogManager 的单个实例,可通过app(LogManager::class) 在整个应用程序中使用。
每次我尝试访问此快捷方式时,我都会收到以下异常:
[2017-03-23 16:42:51] lumen.ERROR: ReflectionException: Class LogManager does not
exist in /vendor/illuminate/container/Container.php:681
LogManager.php(我将该类放在我的模型所在的同一位置(app/LogManager.php))
<?php
namespace App;
use App\LogEntry;
class LogManager
{
...
}
AppServiceProvider.php
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App\LogManager;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
$this->app->singleton(LogManager::class, function ($app) {
return new LogManager();
});
}
}
我在bootstrap/app.php 中取消了$app->register(App\Providers\AppServiceProvider::class); 行的注释
我认为我错过了正确的命名空间或类的放置,尤其是 LogManager。也许有人愿意给我一个提示?
如果您需要更多信息,请给我提示!
【问题讨论】:
-
我经常遇到同样的问题。每次在 config/*.php 或 .env 文件中都会出现一些语法错误。
-
在尝试为容器中的给定抽象获取具体类型时,可能会出现问题。您在哪里以及如何从容器中解析 LogManager?
标签: php laravel ioc-container lumen