Привязан ли как-нибудь интерфейс php к своей реализации? Доброго времени суток.
Периодически встречаю конструкции типа ClassController {
public function actionIndex(CacheItemInterface $cache) {
$cache = Request::post('input');
}
}
Для чего служат подобные вызовы и что конкретно в них проиходит?
В ларавеле подобная конструкция может означать вызов привязанной через сервис конкретной реализации данного интерфейса.

21 Авг 2019 в 06:59
238 +1
0
Ответы
1

Да, в PHP интерфейсы могут быть привязаны к своей реализации через механизм внедрения зависимостей (Dependency Injection). В приведенном вами примере кода класс ClassController имеет метод actionIndex, который принимает объект типа CacheItemInterface в качестве аргумента. В данном случае, это означает, что метод actionIndex ожидает получить объект, который реализует интерфейс CacheItemInterface.

Внутри метода actionIndex происходит обращение к статическому методу Request::post('input'), который, вероятно, возвращает какие-то данные из запроса. Эти данные присваиваются переменной $cache.

Если в вашем примере использован Laravel, то подобная конструкция может означать, что при вызове метода actionIndex объект, реализующий интерфейс CacheItemInterface, будет автоматически внедрен в контроллер через механизм Dependency Injection, что делает код более гибким и упрощает тестирование, так как можно легко заменить имплементацию CacheItemInterface на другую.

Таким образом, использование интерфейсов в PHP позволяет отделить интерфейс от его конкретной реализации, что улучшает структуру кода и облегчает его поддержку и расширение.

20 Апр в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 887 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир