Духовность™
Продвинутый новичок
Вопрос по архитектуре (навеяно livestreet)
Посмотрел я livestreet. На удивление код оказался легкочитаемым, в отличие от.... короче, на редкость приятно читать код.
Там модель - это три сущности. На примере модуля User:
- ModuleUser - класс с логикой определенной модели. http://trac.lsdev.ru/svn/livestreet/trunk/classes/modules/user/User.class.php
- ModuleUser_EntityUser - объект-хранилище сущности. http://trac.lsdev.ru/svn/livestreet/trunk/classes/modules/user/entity/User.entity.class.php
- ModuleUser_MapperUser - маппер для работы с БД. http://trac.lsdev.ru/svn/livestreet/trunk/classes/modules/user/mapper/User.mapper.class.php
Так вот, меня всегда интересовало, куда девать повторяющуюся логику в контроллерах. В livestreet это все засовывается в ModuleUser и вызывается в контроллерах примерно так:
соответственно вызывается метод Action() класса User. Вполне, как мне кажется, хорошее решение.
Вопрос у меня в следующем - как и куда ещё можно выносить логику модели? Как вы обычно это делаете?
И насколько вам кажется правильным/не правильным иметь один общий класс, объединяющей entity и ModuleUser?
Посмотрел я livestreet. На удивление код оказался легкочитаемым, в отличие от.... короче, на редкость приятно читать код.
Там модель - это три сущности. На примере модуля User:
- ModuleUser - класс с логикой определенной модели. http://trac.lsdev.ru/svn/livestreet/trunk/classes/modules/user/User.class.php
- ModuleUser_EntityUser - объект-хранилище сущности. http://trac.lsdev.ru/svn/livestreet/trunk/classes/modules/user/entity/User.entity.class.php
- ModuleUser_MapperUser - маппер для работы с БД. http://trac.lsdev.ru/svn/livestreet/trunk/classes/modules/user/mapper/User.mapper.class.php
Так вот, меня всегда интересовало, куда девать повторяющуюся логику в контроллерах. В livestreet это все засовывается в ModuleUser и вызывается в контроллерах примерно так:
PHP:
$oUser=$this->User_Action()
Вопрос у меня в следующем - как и куда ещё можно выносить логику модели? Как вы обычно это делаете?
И насколько вам кажется правильным/не правильным иметь один общий класс, объединяющей entity и ModuleUser?