2010-08-25 24 views
13

Cuando la creación de nuevos proyectos ZF i normaly tienen esta estructura de directorios:Cuándo usar los módulos en Zend Framework?

  • aplicación
    • módulos por defecto
        • controlador
        • formas
        • vista
        • modelos
      • de administración
        • controlador
        • formularios
        • vista
        • modelos
    • lenguaje
    • compartían
      • modelos
  • biblioteca
  • pública

utilizo únicamente módulos cuando por ejemplo, el diseño es diversa, o se utiliza una base de datos diversa, o, por supuesto cuando se trata de un caso muy especial, como un administrador-backend o un foro/junta. Entonces tengo el controlador para las diferentes partes de la aplicación. por ejemplo, JobController, ProductController, etc.

Un colega mío me mostró su diseño de base. es casi lo mismo, pero usa muchos módulos. al igual que Job-Module, Product-Module, cada uno de estos módulos tiene en su mayoría 2 controladores, un IndexController y un AdminController.

Su configuración funciona y no está mal, pero nunca vi tal enfoque, parece complicado.

Así que a llegado a su fin:

  1. ¿Cuándo utilizar los módulos y cuando usted se adhieren a controladores?
  2. ¿Cuál es su regla para decidir el módulo o no?
  3. ¿Cuáles son los pros y los contras de la configuración de mi colega en su punto de vista ?
  4. ¿Cuáles son los inconvenientes y ventajas de mi configuración en su punto de vista?

TIA

Rufino

EDITAR: ver http://mwop.net/blog/2012-04-30-why-modules.html para obtener información sobre los módulos rediseñados en ZF2.0

Respuesta

9

¿Cuáles son los contras Y profesionales de la configuración de mi colega en su punto de vista?

Mejor reutilización.Suponiendo que su colega mantuvo el código dentro de los módulos independientes de otros módulos, efectivamente creó un dominio de problema autónomo. A diferencia de su enfoque, puede copiar más fácilmente todo el módulo a otras aplicaciones.

+1

gracias por su respuesta. - tiene un buen punto, como en mi enfoque cuando tengo un foro o módulo de administración es independiente en el otro módulo. pero, por ejemplo, hay un módulo de usuario propio, que muy probablemente sea requerido por otros módulos. la pregunta es cuándo la complejidad de la dependencia es una razón para no usar módulos. – Rufinus

+3

@Rufinus TBH, considero que los módulos de ZF no tienen valor siempre que no pueda descargar un BlogModule en algún lugar, ejecutarlo y ¡bang! mi aplicación tiene un blog – Gordon

+0

¿Cómo puedes obtener la recompensa cuando respondiste la mitad de una de sus preguntas? No me importa no conseguirlo, pero me gustaría obtenerlo. – Iznogood

6

¿Cuándo utilizar los módulos y cuando lo haría se adhieren a los controladores?

Igual que usted. Para grandes secciones de mi sitio web como el front-end, sección de administración, la sección de los miembros, etc ...

¿Cuál es la regla para decidir módulo o módulo de no?

¿Es parte del sitio principal o su pequeño mundo relacionado con la interfaz? Especialmente en lo que respecta al diseño. ¿Cómo manejas un par de módulos usando el mismo diseño?

¿Cuáles son los pros y los contras de configurar mi de colega en su punto de vista ?

Mi Dios el mantenimiento. Todas estas carpetas para nada en absoluto. ¿Por qué tiene su página de acerca y página de contacto en dos estructuras de archivos diferentes? Además, ¿dónde pone administradores y miembros si usa módulos para páginas simples?

¿Cuáles son los inconvenientes de mi configuración en su punto de vista?

Realmente es lo contrario de lo anterior. Estructura fácil de entender y coherencia.

vale la pena añadir a su la manera que el equipo Zend nos pretende utilizarlo link

Otra cosa que pensar es lo que sus URL similar.

myapp.com/contact

myapp.com/about

myapp.com/members/profile

myapp.com/members/profile/edit

myapp.com/ miembros/correo

Esta es una manera fácil de ayudar a organizar lo que irá en módulos o controladores.

+0

gracias por su respuesta – Rufinus

+0

No hay problemas. Gran pregunta! – Iznogood

2

Q) ¿Cuándo utilizaría los módulos y cuándo se adheriría a los controladores?

A) Para mí, todo se trata del tamaño de la aplicación. Cuando tenga más de 10 controladores, le recomendamos refaccionar algunos de ellos en un módulo aparte. Si planea crear una aplicación REALMENTE GRANDE, puede valer la pena escupirla en módulos antes de comenzar.

Q) ¿Cuál es su regla para decidir el Módulo o no Módulo?

A) Como dije con más de 10 controladores.

Q) ¿Cuáles son los inconvenientes y pros de la configuración de mi colega en su punto de vista?

A) Si se trata de un proyecto pequeño, se está sobreingeniendo, lo que dificultará el acceso de otros desarrolladores y, en primer lugar, le llevará más tiempo de lo necesario. También corre el riesgo de confundirse a sí mismo.

Q) ¿Cuáles son los inconvenientes y ventajas de mi configuración en su punto de vista?

A) Mi respuesta anterior prácticamente lo cubre, si se trata de un proyecto más pequeño su camino será más rápido y menos confuso a la larga. Prefiero este enfoque y simplemente vuelvo a factorizar si el alcance aumenta.

+0

gracias por su respuesta – Rufinus

+0

Ni siquiera llegaría a hacer ningún tipo de regla sobre la cantidad de controladores. La pregunta que hago es: '¿Podría beneficiarme de las características de los módulos en ZF al dividir esto?' –

5

... como Job-módulo, Producto-Módulo de cada uno de estos módulos en su mayoría tienen 2 Controladores un IndexController y un AdminController.

Esa descripción me plantea una bandera roja. SI este era un proyecto realmente grande que necesitaba confiar en una alta capacidad de resolución y SI codificaba tales módulos de forma que pudieran funcionar independientemente de otros módulos en el sistema y SI había una necesidad de aislar el área de administración para cada módulo, entonces esto podría considerarse un enfoque razonable.

Pero supongo que es probable que exista una dependencia entre el trabajo y el producto, en cuyo caso, este enfoque de módulo parece una sobreingeniería. Especialmente si parece que se aplica una 'regla' arbitraria (como un objeto comercial por módulo).

Además, la mayoría de las estructuras MVC asumirían que si tiene modelos de Producto y Producto, tiene controladores de Producto y Producto (no un Controlador de índice para cada entidad). El propósito de los módulos es segregar las áreas lógicas y de presentación de su sitio, no dividir la lógica comercial.

Si bien es probable que no sea ni aquí ni allá en lo que respecta al MVC adecuado, no tiene sentido para mí crear un módulo que no pueda operar de forma totalmente independiente de otros módulos.

+0

gracias por su respuesta – Rufinus

+0

En ZF, el controlador de módulo predeterminado se denomina IndexController. Es por eso que se nombran de esta manera. Además, no existe una regla en absoluto que una clase Model tenga una contraparte de controlador. – Gordon