Icono del sitio BorrowBits

Modelo Vista Controlador: Cómo implementarlo de forma sencilla y rápida con PHP

Ya hemos hablado en varias ocasiones del Modelo Vista Controlador. En PHP existen frameworks muy completos como Symfony o CakePHP; sin embargo, en este artículo vamos a describir una construcción manual de un MVC en PHP. La implementación mas básica del modelo vista controlador consta de tres archivos: controlador.php, modelo.php y vista.php.

#Controlador.php
 $ajax = $_POST["ajax"];
 if (!empty($ajax)){
 //En caso que tengamos varios tipos de peticiones ajax,
 //podemos diferenciar por una variable de control que enviamos desde la vista:
  case 1:
    require('view_1_ajax.php'); break;
  case n:
    require('view_n_ajax.php'); break;
 }else{
 //Carga de la vista principal
   require('vista.php');
 }

En el archivo del Modelo implementamos una función por cada estructura de datos requerida:

#modelo.php
include 'db_connect.php';
function getNameById($id){
   $row = mysql_fetch_array(mysql_query(
      "SELECT `name`FROM `table` WHERE `id`='".$id."' "
   ) );
   return $row["name"];
}

Y finalmente en la Vista implementamos la plantilla que nos haga falta. La idea es dejar disponibles todas las variables desde el controlador para simplemente imprimirlas en la vista:

 #vista.php
 <html>
 <?php foreach($data as $value) { ?>
   <div>
     <?php echo $value; ?>
   </div>
 <?php } ?>
 ?>

De esta manera, tenemos perfectamente desacopladas la lógica, la vista y las consultas a la base de datos. Esto hace que el desarrollo de aplicaciones sea muy cómodo, más modular, se puede organizar el trabajo en equipo mucho mejor y lo más importante: podemos modificar nuestra interfaz gráfica o cambiar de base de datos modificando sólo los archivos implicados en la vista y el modelo.

Como decíamos, existen ya muchos frameworks que están basados en este modelo. Puedes echar un vistazo a este artículo sobre conceptos básicos de Symfony2 y a nuestra guía de instalación para este potente framework.

¿Qué os parece? ¿Cómo hacéis vosotros para implementar el modelo vista controlador en vuestras aplicaciones?

Salir de la versión móvil