Модели как чистые объекты данных в Zend Framework и сервисном уровне - PullRequest
0 голосов
/ 31 января 2012

Стало общепринятым относиться к моделям в ZF как к чистым объектам данных, то есть к экземпляру класса с кучей атрибутов и методов получения / установки.

class Model_User {
  public $id;
  public $name;
  ...
}

Что меня интересует, так это то, имеет ли смысл, например, создавать экземпляр такого объекта в контроллере и передавать его в сервисный уровень, или же сервисный уровень должен сам или нет нести ответственность за создание экземпляров этих объектов ... Вы бы не создавали экземпляр класса Zend_DbTable непосредственно в контроллере, поэтому имеет ли смысл создавать экземпляр Model_User в контроллере для передачи его в службу?

1 Ответ

0 голосов
/ 31 января 2012

Я не вижу проблем с этим. Объекты транспорта данных (DTO) предназначены для передачи информации между слоями и / или модулями. На мой взгляд, это ничем не отличается от использования массивов, и это, безусловно, проще, чем использование массивов.

Вот еще одно обсуждение DTO - Что такое объект передачи данных?

И определение Мартина о DTO - http://martinfowler.com/eaaCatalog/dataTransferObject.html

...