После документа Laravel я хочу привязать реализацию TransferToInventory
, которая реализует интерфейс Processable
к определенному классу (Handler
).
Обрабатываемыйинтерфейс
interface Processable
{
public function process(array $data);
}
Класс TransferToInventory
class TransferToInventory implements Processable
{
public function process(array $data): void
{
dd($data);
}
}
Обработчик
class Handler
{
protected $data;
protected $processor;
/**
* This is incoming JSON payload, already decoded to an array
* - var_dump($data);
*
* Raw JSON payload from SQS, if necessary
* - var_dump($job->getRawBody());
*
* @param Job $job
* @param array $data
*/
public function handle(Job $job, array $data)
{
resolve(Processorable::class)->process($data);
}
}
Я ставлю привязки зависимостейв AppServiceProvider.
class AppServiceProvider extends ServiceProvider
{
public function register()
{
$this->app->when(Handler::class)
->needs(Processable::class)
->give(function () {
return new TransferToInventory;
});
}
public function boot()
{
//
}
}
Но я всегда получаю следующую ошибку.
local.ERROR: Цель [App \ Services \ Contract \ Processable] не может быть создана.