Задать вопрос
devastation_kvlt
@devastation_kvlt

Почему type hint ругается на наследника?

Не могу понять одну вещь:

Есть абстрактный класс Model, у него наследники Employee и Department.

Есть абстрактный класс TableDataGateway, у него наследники EmployeeTDGW и DepartmentTDGW

Я в классе TableDataGateway пишу: abstract public function add(Model $object); - подразумевая, что можно передавать только Model и её наследников

В дочерних классах я хочу видеть что-то типа public function add(Department $department) - уточняю, что не любой Model, а только Department

Но выскакивает warning кричащий о несоответствии типов. Пришлось в наследниках так-же прописывать Model в качестве переданных параметров.

Как можно сделать такое уточнение и что-бы валидатору понравилось моё решение?
  • Вопрос задан
  • 199 просмотров
Подписаться 1 Оценить Комментировать
Ответ пользователя Melkij К ответам на вопрос (3)
Melkij
@Melkij
DBA Team для вашего PostgreSQL?
Пока нельзя. Наследник должен строго соответствовать контракту родителя.
https://wiki.php.net/rfc/generics Under Discussion
Ответ написан
Комментировать