#php #laravel #inheritance
#php #laravel #наследование
Вопрос:
Итак, у меня есть тип запроса пользовательской формы, например MakeTeaRequest или MakeCoffeeRequest. Этот пользовательский запрос формы расширяет MakeDrinkRequest.
В новом интерфейсе, который я создаю, я хотел бы определить функцию, которая может принимать любой дочерний элемент MakeDrinkRequest , поэтому я сделал следующее:
Interface DrinkControllerInterface
{
public function store(MakeDrinkRequest $request);
...
Однако в моем классе, который реализует DrinkControllerInterface, когда я пишу функцию хранилища, я получаю следующую ошибку в своей IDE:
public function store(MakeTeaRequest $request)
Объявление должно быть совместимо с DrinkControllerInterface->store(запрос: AppHttpRequestsMakeDrinkRequest)
Я неправильно отношусь к этому с точки зрения дизайна? Или есть что-то еще, что я могу сделать, чтобы разрешить любому дочернему элементу этого класса быть вложенным в родительский класс?
Комментарии:
1. Ссылка: php.net/manual/en/language.oop5.variance.php Вы можете принять только более общее или вернуть более конкретное .
2. Дальнейшее чтение: en.wikipedia.org/wiki /…
3. @Йоши хорошо, я понимаю, спасибо за вашу помощь!