Как связать два класса в Laravel Сервисный контейнер - PullRequest
0 голосов
/ 06 марта 2020

У меня есть класс с именем Cat.php следующим образом:

class Cat {
    public $animal;
    public function __construct(MyInterface $animal)
    {
        $this->animal = $animal;
    }
}

, и у меня есть другой класс с именем Animal.php, и он реализует ‍‍ MyInterface‍

Мне нужно использовать Cat класс с Animal вход в класс

Это работает для меня:

app()->bind('Cat', function (){
    return new Cat(new Animal());
});

но мне это не нравится. Поэтому я протестировал следующий код:

app()->bind('Cat', Cat::class);

и использую класс следующим образом:

$cat = app()->make('Cat');

, но моя проблема в том, что этот код не может найти класс Animal. Как я могу ввести класс животных в класс кошки?

1 Ответ

0 голосов
/ 07 марта 2020

Не могли бы вы попробовать,

app()->makeWith('Cat', new Animal())
...