PHP: хорошие способы рефакторинга метода перезаписи с другим типом возвращаемого значения - PullRequest
1 голос
/ 09 июня 2019

Тип возвращаемого значения метода в базовом классе изменился.Как правильно реорганизовать дочерний метод, чтобы сохранить его текущий тип возвращаемого значения?

В следующем примере есть класс Database , который теперь возвращает date в виде простой строки .Класс наследования, с другой стороны, переопределяет getDate и все равно должен возвращать DateTime .

Примечание : реализация в базовом классеневозможно изменить.

Идея : переименование метода getDate в классе DoStuff .

class Database
{
    public function getDate(): string
    {
        return '01-01-0001';
    }
}

class DoStuff extends Database
{
    public function getDate(): DateTime
    {
        return DateTime::createFromFormat('d-m-Y', parent::getDate());
    }
}

Есть лилучшие практики для решения такой проблемы?Большое спасибо за помощь.

...