Я делаю приложение ZF2. Я использую сущности, сопоставители и службы (например, UserEntity, UserMapper, UserService) для управления объектами/моделями. Свойства в сущностях имеют CamalCased (например, FirstName, LastName), в то время как в базе данных поля используют подчеркивание (first_name, last_name). Я планирую использовать гидратор для сопоставления свойств и полей базы данных при извлечении или сохранении. Объект службы (UserService) будет использоваться для связи с преобразователем для извлечения и сохранения моделей данных с помощью преобразователя. Гидратор преобразует результат картографа и преобразует их в правильные объекты.
Меня смущает то, что когда службе (UserService) необходимо предоставить некоторые критерии - например, чтобы найти всех пользователей с определенной «фамилией», будет ли служба использовать имена полей базы данных (last_name) или имя свойства объекта (LastName )?
Если имя поля db используется в службе, то любое изменение в структуре db потребует от меня также обновления службы, что полностью не позволяет использовать весь подход.