В общем сабж. Интересует в контексте именно PHP и в контексте применения вместе с DataMapper-ом.
Сколько логики хранить в этих объектах и хранить ли вообще.
Спрашиваю потому что в сети общие определения этих терминов если и можно найти более менее одинаковые, то детали реализации уж очень у всех отличаются.
Например, в идеале ValueObject должен быть иммутабельный, но если очень хочется то можно модифицировать. Если его модифицировать то возвращать клон объекта, но если очень хочется можно модифицировать данные напрямую.
Одни считают что логики в DTO совсем не должно быть, другие считают что если очень хочется то можно.
Насчет Entity вообще не понятно - каждый понимает под Entity вообще что угодно.
Т.е. термины как-бы и есть но каждый их понимает по своему в пхп сообществе.
Теперь практическая задача
Пусть для примера это будет сферический конь в вакууме - сообщение форума
У которого есть
post_id
user_id
thread_id
message
created_at
modified_at
Т.е. по каким классам разнести методы получения из базы /сохранение в базу 1 поста, различные методы проверки возможности просмотра, редактирования и др., методы преобразования полей поста (форматирование даты, автоцензор) и т.д., методы работы с коллекциями постов (получение/обновлени коллекции) и как их назвать?
По каким классам разнести данные и логику если я хочу использовать датамеппер для сохранения и тоже как назвать эти классы? Что на входе должен получать датамеппер?
Сколько логики хранить в этих объектах и хранить ли вообще.
Спрашиваю потому что в сети общие определения этих терминов если и можно найти более менее одинаковые, то детали реализации уж очень у всех отличаются.
Например, в идеале ValueObject должен быть иммутабельный, но если очень хочется то можно модифицировать. Если его модифицировать то возвращать клон объекта, но если очень хочется можно модифицировать данные напрямую.
Одни считают что логики в DTO совсем не должно быть, другие считают что если очень хочется то можно.
Насчет Entity вообще не понятно - каждый понимает под Entity вообще что угодно.
Т.е. термины как-бы и есть но каждый их понимает по своему в пхп сообществе.
Теперь практическая задача
Пусть для примера это будет сферический конь в вакууме - сообщение форума
У которого есть
post_id
user_id
thread_id
message
created_at
modified_at
Т.е. по каким классам разнести методы получения из базы /сохранение в базу 1 поста, различные методы проверки возможности просмотра, редактирования и др., методы преобразования полей поста (форматирование даты, автоцензор) и т.д., методы работы с коллекциями постов (получение/обновлени коллекции) и как их назвать?
По каким классам разнести данные и логику если я хочу использовать датамеппер для сохранения и тоже как назвать эти классы? Что на входе должен получать датамеппер?