Если объект домена = бизнес-объект, то я ожидал увидеть такие вещи, как findTaxValues (); или searchBooksByAuthor (); вместо этого я обычно вижу геттеры и сеттеры.
1)
Это объектный класс домена?
class Application_Model_Guestbook
{
protected $_comment;
protected $_created;
protected $_email;
protected $_id;
public function __construct(array $options = null)
{
if (is_array($options)) {
$this->setOptions($options);
}
}
public function __set($name, $value)
{
$method = 'set' . $name;
if (('mapper' == $name) || !method_exists($this, $method)) {
throw new Exception('Invalid guestbook property');
}
$this->$method($value);
}
public function __get($name)
{
$method = 'get' . $name;
if (('mapper' == $name) || !method_exists($this, $method)) {
throw new Exception('Invalid guestbook property');
}
return $this->$method();
}
public function setOptions(array $options)
{
$methods = get_class_methods($this);
foreach ($options as $key => $value) {
$method = 'set' . ucfirst($key);
if (in_array($method, $methods)) {
$this->$method($value);
}
}
return $this;
}
public function setComment($text)
{
$this->_comment = (string) $text;
return $this;
}
public function getComment()
{
return $this->_comment;
}
public function setEmail($email)
{
$this->_email = (string) $email;
return $this;
}
public function getEmail()
{
return $this->_email;
}
public function setCreated($ts)
{
$this->_created = $ts;
return $this;
}
public function getCreated()
{
return $this->_created;
}
public function setId($id)
{
$this->_id = (int) $id;
return $this;
}
public function getId()
{
return $this->_id;
}
}
Обновление:
2) Поскольку это похоже на объектный класс домена:
Я с трудом изучаю краткое руководство по Zend.
Вот мое резюме:
Объекты шлюза данных таблиц - это копии объектов наших таблиц, и они должны содержать общие запросы, связанные с таблицами. В Zend мы будем использовать их для выполнения общих запросов, которые будут работать с разными поставщиками баз данных через расширение Zend_Db_Table_Abstract. Что будут делать эти шлюзовые объекты? Они будут подключаться (через адаптер) к нашему источнику данных (например, базе данных MySQL) общим (не зависящим от базы данных) способом;
Объекты сопоставителей данных. Эти объекты будут работать между нашим источником данных и нашими объектными моделями предметной области. Они могут или не могут использовать шлюз для доступа к источнику данных. Их работа заключается в том, чтобы, обращаясь НЕ к конкретной таблице, НО к домену (который может нуждаться / иметь доступ к различным таблицам), он предоставляет способ лучше организовать данные и связанное с ними поведение. В этом примере Zend мы будем использовать преобразователь для перемещения данных назад и вперед между объектами домена и объектами шлюза;
Если приведенное выше верно, то мне все еще не хватает этого:
Объекты домена (также известные как бизнес-объекты) - эти объекты ... Я не понимаю ... каковы их отношения с другими?
Как мы можем правильно определить объект домена - в отношении этой архитектуры шлюза / сопоставителя?