Рассмотрите следующую ситуацию. У меня есть объект, который содержит некоторую информацию, скажем, новость. Эта новость содержит комментарии.Как изящно войти в объект Doctrine2
В объекте элемента новостей есть функция calculateStatistics()
, которая возвращает некоторую статистику, полученную из объекта новостей, а также его комментарии. Раньше у меня была эта функция вычисления внутри NewsService
, но затем выяснилось, что услуга не нужна, потому что я использую только информацию, находящуюся внутри объекта.
В настоящее время функция расчета также выполняет некоторую проверку работоспособности. Я хочу регистрировать отрицательные результаты в качестве предупреждения в моей службе Монолог. Я по-прежнему полагаю, что в данный момент действительно есть функция вычисления внутри объекта, поскольку никакой внешней информации/услуги не требуется. Есть ли элегантный способ поддержки ведения журнала внутри объекта?
Не все равно слишком много о сарказме, но .. . Изящный способ - не регистрироваться в сущности;) Расчет почему нет, но не протоколирование. Помните, что Doctrine позволяет загружать частичные объекты, так что некоторые свойства могут быть NULL, тогда как они оцениваются в DB, так что вычисление в сущности даже не очень хорошая идея. Автоматизация этого процесса с событием кажется хорошим способом. – AlterPHP
Я думаю, что это хороший вопрос. В настоящее время логика домена в наших сущностях генерирует исключения, что приводит к сбоям наших приложений в неизвестных местах. Мы могли бы также вернуть разумные значения по умолчанию, и пусть сущности регистрируют эти случаи для довольно некоторых из этих случаев. – Rvanlaak