Организация модулей и моделей в Zend Framework 2

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

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

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

База данных диспетчера фильмов

Это «приложение для управления фильмами». В этом приложении у меня есть 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;

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

Я понимаю, что 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?

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

если я не разбираюсь в своих вопросах, пожалуйста, спрашивайте!

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


person Vinicius Garcia    schedule 17.02.2012    source источник


Ответы (2)


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

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

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

person Adrian World    schedule 17.02.2012

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

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

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

person Jason Grimes    schedule 01.05.2012