У меня проблемы с привязкой к контейнеру.
Это мой метод регистрации в 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');
Но он получает то же исключение