Laravel 5 - Связывание для команды в пакете - PullRequest
0 голосов
/ 17 апреля 2019

Я хочу создать пакет, в котором есть команда.Данная команда опирается на привязку к зависимой библиотеке - как таковая:

  • в моем файле composer.json, который я указал
"extra": {
        "laravel": {
            "providers": [
                "Test\\ServiceProvider"
            ]
        }
    }
  • созданный сервиспровайдер
<?php

namespace Test;

use Illuminate\Support\ServiceProvider as Provider;
use Test\Commands\TestCommand;
use External\Package\Binding;

class ServiceProvider extends Provider
{
    public function boot()
    {
        if ($this->app->runningInConsole()) {
            $this->commands([
                TestCommand::class,
            ]);   
        }
    }

    public function register()
    {
        $this->app->singleton(Binding::class, function () {
            return new Binding();
        }); 
    }
}
  • созданная команда
<?php

namespace Test\Commands;

use Illuminate\Console\Command;
use External\Package\Binding;

class TestCommand extends Command
{
    public function __construct(Binding $binding)
    {
        parent::__construct();

        $this->binding = $binding;
    }
}

Все же я получаю:

Подсветка \ Контракты \ Контейнер \ BindingResolutionException: Цель [External \ Package \ Binding] не создается при сборке [Test \ Commands \ TestCommand]

Как обойти проблему?

...