Инъекция зависимости в люмен - PullRequest
1 голос
/ 19 января 2020

Я пытаюсь понять внедрение зависимостей в люменах

Я хочу добавить userService

{
    protected $userService;
    public function __construct(UserService $userService, $config)
    {
        $this->userService = $userService;
    }

применить его здесь: Консоль / Команды / Command2. php

    $server = app(Server::class, [$config]);

получение ошибки

в контейнере. php строка 993: неразрешимое разрешение зависимостей [Параметр # 1 [$ config]] в классе App \ SocketServer \ Server

1 Ответ

1 голос
/ 19 января 2020

Зависимости с параметрами можно настроить в поставщиках услуг. Поставщика услуг можно сгенерировать, запустив:

php artisan make:provider UserServiceProvider

Изменение метода настройки в UserServiceProvider.php файле

    public function register()
    {
        $this->app->singleton(UserService::class, function ($app) {
            $config = ['debug' => true];
            return new UserService($config);
        });
    }

, зарегистрировав его в config/app.php:

'providers' => [
    // Other Service Providers

    App\Providers\UserServiceProvider::class,
],

И тогда Laravel сможет внедрить зависимость:

    protected $userService;
    public function __construct(UserService $userService)
    {
        $this->userService = $userService;
    }
...