¿Se aplica el concepto MVC a las páginas PHP estáticas?

Estoy tratando de construir mi propio marco PHP MVC.

En este momento estoy creando un sitio web simple de 2 páginas donde cada página extiende una página de plantilla para que no tenga que preocuparme por las metaetiquetas, el encabezado, la navegación y el pie de página al crear nuevas páginas.

Estoy tratando de encontrar una manera de derramar esto en los componentes separados de MVC pero no puedo

Esto me lleva a creer que MVC no es necesariamente el camino a seguir con este marco.

Entonces, ¿el concepto MVC se aplica a las páginas PHP estáticas (por estáticas quiero decir que la única entrada del usuario es hacer clic en los enlaces, sin iniciar sesión ni nada)?

preguntado el 20 de mayo de 12 a las 12:05

@MarkBaker Controller no es la lógica empresarial. Los modelos están diseñados para incorporar la lógica empresarial (modelos de dominio rico). Incluso si desea usar capas de servicio (controlador + capas de subservicio) + módulos de tabla (modelos como dijo), los controladores no deben encapsular las reglas, pero las capas de subservicio deberían hacerlo. De todos modos, los modelos deben encapsular las reglas comerciales y no solo los datos. -

3 Respuestas

¿Necesitas MVC?

  • ¿Se puede aplicar el concepto MVC a un sitio web con páginas estáticas? , puede.
  • ¿Deberías usarlo? No, a menos que espere que el proyecto crezca.

La arquitectura MVC, en su esencia, se trata de separar la lógica comercial de la lógica de presentación.

En (lo que usted llama) sitio estático, la única función de la capa modelo (sí, es una capa, no una clase) sería obtener contenido de la memoria caché o de la base de datos. En este caso obtendrá más marco que trabajo, porque configurar una estructura MVC requeriría más código que las partes útiles.

¿Debería construir un marco

Definitivamente haz uno. En la comunidad PHP esto es casi como un rito de iniciación. Si no ha creado al menos algunos marcos, no es un verdadero desarrollador de PHP.

Sin embargo, debe tener en cuenta que le llevará al menos 3 iteraciones construir algo que no apeste. Y eso suponiendo que realmente estudias los principios de OOP en lugar de imitar algún otro marco.

¿Cuáles serían mejores opciones para un proyecto pequeño?

En lugar de escribir un marco MVC completo, intente escribir algo que siga su espíritu.

Hay dos cosas por las que deberías empezar:

  1. tu aplicación debería tener Punto único de entrada. Esto significaría que, si el usuario escribe http://who.cares/article/1 , entonces deberías reescribir la URL para index.php?url=article/1

  2. separar las preocupaciones. Básicamente, tiene 3 cosas diferentes para hacer en tales aplicaciones:

    • analizar la solicitud del usuario
    • obtener los datos
    • mostrar la información recopilada

Para la última parte, podría beneficiarse de mirar este artículo. Por lo demás, tendrás que decidir por tu cuenta.

Simplemente no los antiguos mysql_* Funciones para recopilar datos de la base de datos (si tiene alguna). Ya no se mantienen y la comunidad ha comenzado la proceso de desaprobación . En su lugar, debe aprender sobre declaraciones preparadas y usa ya sea PDO or MySQLi. Si no puedes decidir, este artículo ayudará a elegir. Si te importa aprender, aquí hay un tutorial bastante bueno relacionado con PDO.

contestado el 20 de mayo de 12 a las 17:05

No, no necesita la arquitectura mvc para una aplicación estática. Nunca. - Cata Cata

@CataCata, y la próxima semana, el sitio estático debe tener una galería y luego comentarios a los artículos, y votar por el comentario, y usuario registrado y ... etc. Si el cliente tiene "grandes planes" para el proyecto, entonces podría ser mejor invertir algo de tiempo creando una estructura adecuada. Además... ¿qué pasa con eso de "todo es una aplicación"? - tereško

No entiendo el concepto de estático/dinámico. Las páginas estáticas no utilizan lenguajes de programación. Si necesitan y usan un lenguaje de programación, se volverán dinámicos. Período. ¿Desde cuándo un desarrollador debería hacer "algunos" marcos de trabajo deficientes y no 1 peso pesado, tal vez un marco mundialmente reconocido? ¿Le pones precio a la cantidad, no a la calidad/valor? :) - Cata Cata

@CataCata, y no leyó la definición de OP de lo que quería decir con "página estática". - tereško

Su pregunta es realmente borrosa. Dijo que 2 páginas, la palabra "estática" está en todas partes. No sé lo que realmente quiere lograr. Simplemente tomé la palabra "estático" literalmente. - Cata Cata

Dado que sus páginas necesitan un lenguaje de programación para cambiar el contenido, hacer algo con la entrada del usuario, etc., no es tan estático en absoluto. Son estáticos cuando usas solo lenguajes de marcado y estilo.

Es difícil decir si su proyecto necesita una arquitectura sólida. Para páginas estáticas, no necesita mvc. Para su proyecto de 2 páginas nuevamente, creo que no necesita mvc a menos que sus páginas sean muy dinámicas (1 página puede tener varios estados).

Debería leer más sobre la estructura, la arquitectura de una aplicación si realmente desea crear su propio marco. Por lo general, solo las aplicaciones medianas/grandes necesitan una estructura/arquitectura sólida (por ejemplo: mvc).

Respuesta final: no creo que su aplicación necesite mvc.
PD: Es bueno hacer tu propio framework mvc, aprendes muchas cosas. Pero llevará mucho tiempo finalizarlo si lo hace solo (si quiere hacerlo mejor que los existentes). No existe un marco php mvc sólido (casi perfecto :)). La comunidad Php carece de un marco bueno y aceptado en todo el mundo. Muchos marcos, pero todos tienen sus pros y sus contras. Incluso escuché a algunos desarrolladores decir que zend mvc es más una biblioteca.

contestado el 20 de mayo de 12 a las 20:05

En primer lugar, mvc NUNCA es necesario. Este es solo un patrón reconocido por ser útil proporcionando organización, robustez, seguridad...

Entonces, si quieres mi opinión, cuanto antes te familiarices con él al implementarlo en tus páginas estáticas, más fácil será seguir adelante con tus próximas páginas.

Respondido 29 Oct 13, 00:10

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.