Laravel IoC связывается при неприятностях - PullRequest
0 голосов
/ 28 августа 2018

У меня проблемы с привязкой к контейнеру. Это мой метод регистрации в ServiceProvider

    $this->app->bind('dash_manager', function () {
        return new CoinsManager(new CoinManagerFactory(), 'dash');
    });

    $this->app->bind('litecoin_manager', function () {
        return new CoinsManager(new CoinManagerFactory(), 'ltc');
    });

    $this->app->when(CreateDashWalletJob::class)
        ->needs(CoinsManager::class)
        ->give('dash_manager');

    $this->app->when(CreateLitecoinWalletJob::class)
        ->needs(CoinsManager::class)
        ->give('dash_manager');

Я создал Job с методом handle, в котором есть инъекция CoinManager

public function handle(CoinsManager $dashManager, ...)
{
     //logic
}

и та же работа для litecoin. Но ...

Illuminate\Contracts\Container\BindingResolutionException: Unresolvable 
dependency resolving [Parameter #1 [ <required> $currency ]] in class 
App\Libraries\CoinsManager\CoinsManager

Я пытался сделать что-то вроде этого

$this->app->when(CreateLitecoinWalletJob::class)
        ->needs('$currency')
        ->give('ltc');

А это

$this->app->when(CreateLitecoinWalletJob::class)
        ->needs(CoinManager::class)
        ->needs('$currency')
        ->give('ltc');

Но он получает то же исключение

...