Pregunta

Tengo algunas preguntas sobre la estructura de los módulos y modelos ZF.

(Estoy hablando de ZF 2, porque renuncié a ZF 1.11)

Para que mi pregunta sea fácil de entender, mire el siguiente ejemplo: (creo esto solo para aprender ZF2)

Movie Manager DataBase

Es una "aplicación de administrador de películas". En esta aplicación tengo 3 tipos de usuarios:

- 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, ...

Los miembros no pueden insertar nada más que una nueva película, es decir, no pueden insertar un nuevo género, ni un nuevo artista.

Ok ... para este problema, encontré esta solución:

- create 3 modules: visitor, member, admin;

Pero no estoy seguro de si es la mejor manera de organizar el programa ...

Me doy cuenta de que ZF espera que las personas organicen la aplicación de esta manera:

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

Entonces, mis preguntas son:

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?

Realmente me quedé con este problema. A no pudo encontrar respuestas en ningún lado ... Si alguien tiene una pequeña aplicación como esta y no le importa compartir, me alegraré.

Si no tengo claro mis preguntas, ¡pregunte!

Gracias por tu ayuda.

¿Fue útil?

Solución

Lo que se ve aquí es un modelo de base de datos y, por lo tanto, la pregunta principal para mí es cómo administrar los datos. En un patrón MVC, administra datos con modelos. Por mucho que pueda decir aquí, su pregunta no debe estar relacionada o limitada a ZF2. Al igual que en versiones anteriores, debe tener modelos para administrar la base de datos y las tablas de datos.

Los módulos manejarán el aspecto de la aplicación. Cuando tiene un modelo sólido para los datos (personas, género, usuarios, películas), puede crear docenas de módulos que accedan a los modelos. Por lo tanto, puede tener muchos y muchos módulos para diferentes propósitos, pero siempre el mismo modelo.

Puede tener un módulo que solo maneja la administración de usuarios, una que solo administra (agregar/actualizar) películas y otra que solo enumere las películas (lea), etc.

Otros consejos

Creo que podrías hacer la mayor parte de esto en un módulo ZF2, tal vez llamado "Moviemanager". La película y la persona podrían ser modelos (es decir, clases base y tablas de bases de datos) dentro del espacio de nombres del módulo Moviemanager.

El usuario podría ser un módulo separado, para manejar la autenticación del usuario y el control de acceso. Puede echar un vistazo al trabajo que Evan Coury ha realizado en un módulo de usuario de ZF2 reutilizable: https://github.com/zf-commons/zfcuser O puede mantenerlo simple y poner el modelo de usuario dentro de su módulo Moviemanager también.

Usaría zend_acl para definir qué operaciones puede realizar un usuario determinado. O podría hacerlo más simplemente teniendo una propiedad básica de "rol" en la clase de usuario y verificando los roles autorizados en sus controladores Moviemanager.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top