Пытаюсь передать класс в конструктор. Настройки все выставлены.
Так работает (ShipRepository implements IShipRepository ):
public function __construct(\AppBundle\Infrastructure\Persistence\ShipRepository $shipRepo)
Так не работает (IShipRepository - интерфейс):
public function __construct(IShipRepository $shipRepo)
Почему нельзя указывать интерфейс для требования класса?
Код ошибки:
Type error: Argument 1 passed to AppBundle\Newsletter\NewsletterManager::__construct() must be an instance of AppBundle\Domain\Repositories\IShipRepository, instance of AppBundle\Infrastructure\Persistence\ShipRepository given, called in \var\cache\dev\appDevDebugProjectContainer.php on line 338
500 Internal Server Error - FatalThrowableError
Классы:
по большей части такие же как в
примере ddd.
UPD: Не понятно почему система требует передать конкретно интерфейс, но не принимает класс имплементирующий нужный интерфейс.