Foros del Web » Programando para Internet » PHP »

implementar MVC en PHP

Estas en el tema de implementar MVC en PHP en el foro de PHP en Foros del Web. Buenas noches Es la primera vez que implemento MVC en un proyecto y me gustaría que me dieran sus opiniones Creen que estoy siguiendo la ...
  #1 (permalink)  
Antiguo 10/12/2014, 20:22
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años, 7 meses
Puntos: 131
implementar MVC en PHP

Buenas noches

Es la primera vez que implemento MVC en un proyecto y me gustaría que me dieran sus opiniones

Creen que estoy siguiendo la idea de MVC correctamente?
Que me aconsejan mejorar

estructura
index.php

views/
header_view.php
footer_view.php
main_view.php
contact_view.php
terms_view.php
element_view.php
404_view.php

models/
main_model.php

controllers/
main_controller.php

EL INDEX

index.php
Código PHP:
Ver original
  1. <?php
  2. include("controllers/main_controller.php");
  3. ?>

MODELOS

models/main_model.php
Código PHP:
Ver original
  1. <?php
  2. class main_model
  3. {
  4.     function __construct()
  5.     {
  6.         //conexion
  7.     }
  8.  
  9.     function __destruct()
  10.     {
  11.         //desconectar
  12.     }
  13. }
  14. ?>

CONTROLADORES

controllers/main_controller.php
Código PHP:
Ver original
  1. <?php
  2. include("/../models/main_model.php");
  3. $obj = new main_model;
  4.  
  5. $page = empty($_GET["page"]) ? "main" : $_GET["page"];
  6. $page = strtolower($page);
  7.  
  8.  
  9. if( $page == "main" )
  10. {
  11.     include("/../views/main_view.php");
  12. }
  13. else if( $page == "contact" )
  14. {
  15.     include("/../views/contact_view.php");
  16. }
  17. else if( $page == "terms" )
  18. {
  19.     include("/../views/terms_view.php");
  20. }
  21. else if( $page == "element" )
  22. {
  23.     include("/../views/element_view.php");
  24. }
  25. else
  26. {
  27.     include("/../views/404_view.php");
  28. }
  29.  
  30. ?>

VISTAS

views/header_view.php
Código PHP:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="es">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>HTML5 PARA VENCER</title>
  6. </head>
  7. <body>

views/footer_view.php
Código PHP:
Ver original
  1. </body>
  2. </html>

views/404_view.php
Código PHP:
Ver original
  1. <?php
  2. include("header_view.php");
  3. echo "404";
  4. include("footer_view.php");
  5. ?>

views/main_view.php
Código PHP:
Ver original
  1. <?php
  2. include("header_view.php");
  3. echo "pagina inicial";
  4. include("footer_view.php");
  5. ?>

views/contact_view.php
Código PHP:
Ver original
  1. <?php
  2. include("header_view.php");
  3. echo "contacto";
  4. include("footer_view.php");
  5. ?>

views/terms_view.php
Código PHP:
Ver original
  1. <?php
  2. include("header_view.php");
  3. echo "terms";
  4. include("footer_view.php");
  5. ?>

views/element_view.php
Código PHP:
Ver original
  1. <?php
  2. include("header_view.php");
  3. echo "element";
  4. include("footer_view.php");
  5. ?>

el .htaccess

Código Apache:
Ver original
  1. RewriteEngine on
  2. Rewriterule ^(\w+)$ index.php?page=$1

Saludos
  #2 (permalink)  
Antiguo 11/12/2014, 04:47
nfo
 
Fecha de Ingreso: octubre-2008
Ubicación: EsPaCiO TiEmPo
Mensajes: 408
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: implementar MVC en PHP

Yo en vez de if meteria un swicht. por lo demás muy bien.
  #3 (permalink)  
Antiguo 11/12/2014, 09:04
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años, 7 meses
Puntos: 131
Respuesta: implementar MVC en PHP

Gracias nfo por el consejo, lo implementare

saludos :)
  #4 (permalink)  
Antiguo 11/12/2014, 09:43
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: implementar MVC en PHP

Cita:
Creen que estoy siguiendo la idea de MVC correctamente?
No, lo único que tienes es separación de código.
Cita:
Que me aconsejan mejorar
Crear una implantación del modelo MVC no es una tarea trivial, así que tienes muchas cosas que mejorar y mucho que leer.
Lo que te puedo aconsejar es que mejor instales composer y después Slim: http://www.slimframework.com/ es un micro framework que te tomara unos minutos comenzar a usar y se acerca a lo que estas haciendo. La ventaja adicional de esto es que puedes comenzar tu proyecto y además mirar el código y aprender como se implementan algunas cosas.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 11/12/2014, 10:10
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años, 7 meses
Puntos: 131
Respuesta: implementar MVC en PHP

hhs
Gracias por ayudarme

Pues tendre que ponerme a estudiar mas para mejorar

La verdad no me gustaria usar ahorita un framework, primero quiero manejar MVC fluidamente y despues ya usar un framework

Me podrias pasar un enlace con buena informacion de MVC por favor

saludos
  #6 (permalink)  
Antiguo 11/12/2014, 14:01
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 10 meses
Puntos: 206
Respuesta: implementar MVC en PHP

Es que crear tu propio MVC es justo la peor manera de comenzar con MVC. Usa ese micro MVC que te pasaron, aprencerás los conceptos mínimos que se necesitan. El modelo, con un ORM o DAO. La vista, con algún sistema de plantillas. El controlador-enrutador redirigir el flujo de la web.

Usa uno. No hay otra manera de aprender MVC.
  #7 (permalink)  
Antiguo 11/12/2014, 14:26
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años, 7 meses
Puntos: 131
Respuesta: implementar MVC en PHP

marlanga

Gracias por este super consejo.

Lo voy a usar

Muchas gracias a todos

Etiquetas: html, implementar, mvc
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:36.