архитектура Zend моделей - PullRequest
       19

архитектура Zend моделей

4 голосов
/ 23 января 2010

Допустим, у меня есть две таблицы в базе данных: проекты и пользователи. Я создаю две модели, расширяющие Zend_Db_Table_Abstract: Model_DbTable_Users и Model_DbTable_Projects.

Теперь, это хороший шаблон для создания экземпляра Model_DbTable_Projects внутри класса Model_DbTable_Users? Другими словами: можно ли использовать какую-либо логику в этой модели или я должен создать другой класс, который использует Model_DbTable_Users и Model_DbTable_Projects?

Я использую всю логику в моделях, расширяющих Zend_Db_Table_Abstract, но в больших проектах это может сделать код очень нечистым. Итак, можете ли вы дать мне какой-нибудь совет по архитектуре моделей (ссылки на статьи были бы хорошими!).

1 Ответ

9 голосов
/ 24 января 2010

Я был руководителем проекта Zend Framework до версии 1.0. Мой вклад был в основном в компоненте Zend_Db.

Я часто советую , чтобы люди использовали шаблон Доменная модель и избегали использования антипаттерна Модель анемичного домена . Помните, что Таблица не является моделью.

Ваша модель - это класс (не расширяющий базовый класс) для кода, который инкапсулирует вашу бизнес-логику. Отношения между моделью и таблицей - это не IS-A, это HAS-A (или HAS-MANY). Модель рассматривает постоянство базы данных как деталь реализации. Потребитель модели не должен иметь представления о структуре вашей базы данных (это позволяет вам изменять структуру базы данных без изменения интерфейса модели).

Я в основном повторяю ответ, который я дал Моделям в Zend Framework .

Вот еще чтение:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...