Организация модулей и моделей на Zend Framework 2 - PullRequest
3 голосов
/ 17 февраля 2012

У меня есть несколько вопросов о структуре модулей и моделей ZF.

(я говорю о ZF 2, потому что я отказался от ZF 1.11)

Чтобы сделать мой вопрос простым для понимания, посмотрите на следующий пример: (Я создаю это просто для изученияZF2)

Movie Manager DataBase

Это «приложение менеджера фильмов».В этом приложении у меня есть 3 вида пользователей:

- visitors: peolple who olny can see the movies in the database.
- members: same as visitors plus insert, update and delete movies.
- administrator: same as members plus insert, update and delete users and other informations as genre, artist, ...

участники не могут вставлять ничего, кроме нового фильма, т. Е. Они не могут вставлять новый жанр или нового исполнителя.

ок ... для этой проблемы я нашел решение:

- create 3 modules: visitor, member, admin;

но я не уверен, что это лучший способ организовать программу ...

IПоймите, что ZF ожидает, что люди организуют приложение следующим образом:

- create modules for each funcionallity;
- create roles for each kind of user;

Итак, мои вопросы:

1. My solution is right or wrong?
2. If my solution is right, how can I organize my application?
3. How can I organize my models, to be visible to more than one module?
- I think a should create a model "movie" somewhere if "inserts, updates, deletes, and selects"
then a module "visitor" could only use a "select" while a module "member" could use all the funcionallities. Am I right?

4. If my solution is not right, how can I organize my application?
5. How should be my modules?

Я действительно застрял с этой проблемой.Я нигде не мог найти ответы ... Если у кого-то есть небольшое приложение, подобное этому, и вы не против поделиться им, я буду рад.

, если мне не ясны мои вопросы,пожалуйста, спросите!

Спасибо за вашу помощь.

Ответы [ 2 ]

3 голосов
/ 18 февраля 2012

То, что вы видите здесь, - это модель базы данных, и поэтому главный вопрос для меня - как управлять данными. В шаблоне MVC вы управляете данными с помощью моделей. Насколько я могу сказать, ваш вопрос не должен быть связан или ограничен ZF2. Как и в более ранних версиях, у вас должны быть модели для управления базой данных и таблицами данных.

Модули будут обрабатывать аспект приложения. Когда у вас есть надежная модель для данных (люди, жанр, пользователи, фильмы), вы можете создать десятки модулей для доступа к моделям. Следовательно, у вас может быть множество модулей для разных целей, но всегда одна и та же модель.

У вас может быть модуль, который управляет только управлением пользователями, один, который управляет только (добавлять / обновлять) фильмами, а другой - только списки (читать) фильмов и т. Д.

1 голос
/ 01 мая 2012

Я думаю, вы могли бы сделать большую часть этого в одном модуле ZF2, возможно, под названием «MovieManager».Movie и Person могут быть моделями (т.е. базовыми классами и таблицами базы данных) в пространстве имен модуля MovieManager.

Пользователь может быть отдельным модулем для обработки аутентификации пользователя и контроля доступа.Вы могли бы взглянуть на работу, которую проделал Эван Кури над пользовательским модулем ZF2 многократного использования: https://github.com/Zf-Commons/ZfcUser Или вы могли бы упростить его и поместить модель User в свой модуль MovieManager.

Я бы использовал Zend_Acl, чтобы определить, какие операции разрешено выполнять данному пользователю.Или вы можете сделать это проще, имея базовое свойство role в классе User и проверяя авторизованные роли в контроллерах MovieManager.

...