Я хочу знать. Я нашел это в классе Symfony2 TranslationLoader:
public function addLoader($format, LoaderInterface $loader)
{
$this->loaders[$format] = $loader;
}
я нашел LoaderInterface
есть только один метод. Но откуда мы знаем реализацию этого интерфейса? Это интерфейс впрыска?
Внедрение интерфейса это вещь, но на самом деле то, что вы видите в фрагменте Тип Хинтинг, форма сильная типизация.
Что это делает, это принудительно во время выполнения, что значение передается в $loader
должен соответствовать определению интерфейса (или класса), указанному в подсказке типа. В основном ответ на вопрос:
Есть ли
$loader
реализовать все методыLoaderInterface
?
Если этого не произойдет, вы получите ловимая фатальная ошибка.
Других решений пока нет …