А если еще, разделить Модель на Объект поведения/состояния и репозиторий, то и вовсе можно будет паттерн называть Domain model pattern / Repository pattern :D
Подходов к реализации патернов много, но вот подход Доктрины, намного ближе к сути. Когда Модели ни чего не знаю об окружающем мире, кроме отношений между собой.
К примеру:
$user = new Article();
$user->setName();
$user->setFirstname();
$article = new Article();
$article->setTitle('Doctrine model');
$article->setUser($user);
$em->persist($user);
$em->persist($article);
$em->flush();
$em->remove($article);
$em->flush();
Собственно Zend 2 предлагает аналогичный подход к реализации моделей, за некоторыми исключениями.
Этот уровень в моей реализации ничего не знает о способах (и местах) хранения данных.
Так зачем тогда, засунули следующий кодв модель:
/* Start describe behaivors of object
*/
public function getDeviceByKey ($key) {
return $this->_mapper->findByKey($key);
}
public function deleteByKey($key) {
return $this->_mapper->deleteByCriteria('secretKey', $key);
}
Вынесети, такого рода методы в маппер, он ведь знает и от DataAccessLevel и от Domain Model.
Был в Хургаде, года три назад, идеальные дороги, идеальные разметки, сотни лежачих полицеских, объездная за пределами зоны отелей, машины рвут 200 — 220, на перекрестках у кого громче сигнал, тот и прав…
А именно в среде разработчиков, уже есть прецеденты, что зп в рублях урезали при сохранении стандартной трудовой недели?
К примеру:
Собственно Zend 2 предлагает аналогичный подход к реализации моделей, за некоторыми исключениями.
Так зачем тогда, засунули следующий кодв модель:
Вынесети, такого рода методы в маппер, он ведь знает и от DataAccessLevel и от Domain Model.
А для вышеупомянутого, скорее всего сначала надо реализовать более менее жесткую типизацию, а то потом будем гадать, почему:
ИМХО попахивает Монадами.
Здесь сорсы лежат:
sourceforge.net/projects/phpclosure/forums/forum/1169949/topic/3779017