Я знаю, что это задавали снова и снова, я читал темы, но он всегда фокусировался на конкретных случаях, и я вообще пытаюсь понять, почему его не рекомендуется использовать службу внутри объекта.
Учитывая очень простой сервис:
Class Age
{
private $date1;
private $date2;
private $format;
const ym = "%y years and %m month"
const ...
// some DateTime()->diff() methods, checking, formating the entry formats, returning different period formats for eg.
}
и простой объект:
Class People
{
private $firstname;
private $lastname;
private $birthday;
}
Из контроллера, который я хочу сделать:
$som1 = new People('Paul', 'Smith', '1970-01-01');
$som1->getAge();
Вне курса я могу переписать функцию getAge()
внутри моей сущности, ее не долго, но я очень ленив, и поскольку я уже написал все возможные datetime- > diff(), которые мне нужны в вышеупомянутой службе, я не могу понять, почему я не должен использовать его...
NB: мой вопрос заключается не в том, как вводить контейнер в мою сущность, я могу понять, почему это не имеет смысла, но больше того, что было бы лучшей практикой, чтобы избежать переписывания одной и той же функции в разных сущностях.
Наследование кажется плохой "хорошей идеей", поскольку я мог использовать getAge() внутри класса BlogArticle, и я сомневаюсь, что этот класс BlogArticle должен наследоваться от того же класса, что и класс People...
Надеюсь, что я был ясен, но не уверен...