Está en la página 1de 8

DPW-II

INSTITUTO TECNOLÓGICO BOLIVIA MAR


CARRERA DE SISTEMAS INFORMÁTICOS
DISEÑO Y PROGRAMACIÓN WEB II
Lic. Hilda Callisaya Apaza

MODELO VISTA CONTROLADOR EN PHP

En la programación web podemos encontrar un sin fin de opciones para desarrollar nuestras aplicaciones
web, lenguajes de programación tanto web como móviles y tomadas de la mano con sus APIs,
frameworks y ciertas herramientas que nos agiliza el proceso de desarrollo, pero hay algo que no debemos
descuidar al momento de desarrollar nuestras aplicaciones es el de tener buenas prácticas, por ejemplo
si hablamos en concreto del lenguaje de programación PHP nos da bastante libertad y fácilmente
podemos descuidar el desarrollo de nuestro código obteniendo así uno desordenado y muchas veces mal
aplicado.

Para solventar este tipo de incidentes existen patrones de desarrollo que nos ayudan a mantener un código
mejor estructurado, anteriormente hablamos de la programación orientada a objetos (POO) que en si es
un paradigma que nos permite modularizar, clasificar nuestras aplicaciones y es de gran importancia ya
que comprendiendo este paradigma podemos hablar de estos patrones, uno de ellos es el patrón Modelo
Vista Controlador (MVC) y ahora hablaremos de ello.

El MODELO VISTA CONTROLADOR es un patrón de arquitectura de software que nos aporta


separando los datos de nuestra aplicación de la lógica y de la interfaz de usuario obteniendo así tres
componentes relacionados entre sí. Si bien la POO nos ayuda a clasificar nuestra aplicación, el MVC nos
ayudará a separarlo por componentes (que también se lo puede denominar capas).
DPW-II
DPW-II

A continuación, en que consiste cada una de estas capas:

Modelo: Es todo lo referente a la gestión de la información y la interacción con los datos de nuestra
aplicación (comúnmente bases de datos) este modelo realizará acceso a dicha información como también
podrá realizar actualizaciones y depuraciones de los datos gestionados. Toda petición de acceso a la
información siempre pasará por esta capa.

Controlador: Este es el puente entre la vista y el modelo ya que el usuario solicitará información
mediante la vista y este pasará por el controlador para posteriormente realizar la petición al modelo,
habitualmente es llamado la capa de lógica del negocio.

Vista: Esta capa nos mostrará la información formateada y ordenada, es el resultado de todo lo que el
modelo interaccione con los datos, este lo muestra mediante la interfaz de usuario, habitualmente llamado
la capa de presentación.

En la actualidad lenguajes de programación con alto peso utilizan este patrón, cada una de estas llevadas
de la mano con sus frameworks, tal es el caso de PHP con frameworks como Laravel, Zend, Symfony,
CakePHP, CodeIgniter, Prado, Yii son solo algunos de los muchos ya existentes que trabajan con este
patrón, desde luego cada uno de estos tiene su manera de trabajarlo, pero en si la esencia y el concepto
siempre será el mismo.

Requisitos para empezar a programar un MVC

• Servidor local XAMPP - servicios de Apache y Mysql - PHP


• Editor de código puede ser Sublime Text o Visual Studio Code
• Un Navegador Google Chrome o firefox o Brave

Funcionalidad a implementar
DPW-II

• Desarrollo de un CRUD con PHP y Mysql


o Leer
o Editar
o Actualizar
o Borrar

¿Pero cómo aplico todo esto con PHP?

Para que todo esto quede más claro que mejor plasmarlo con un ejemplo sobre un restaurante para así
mostrar la forma en que trabaja el patrón de desarrollo MVC.

Nos encontramos en un restaurante que tiene variedad de platillos, cuando un comensal ingresa este
solicita el menú, entonces se realizará una solicitud de los platillos disponibles en el restaurante, esta
solicitud se lo realiza mediante el controlador para que este mismo realice una petición al modelo,
como este modelo es el encargado de interactuar con los datos entonces realizará una consulta a la base
de datos de los platillos disponibles en el restaurante, una vez obtenido el resultado este se lo devolverá
al usuario mediante la vista. Vamos a reflejar todo esto en código PHP, para que tú puedas seguir el
procedimiento se demostrará por pasos:

1) Crearemos una estructura de base de datos simple, esto con fines prácticos para demostrar
correcta funcionalidad:

La base de datos lo llamaremos restaurant y contendrá cuatro campos, que indican el id, nombre del
platillo, su precio y su disponibilidad, entonces cuando el valor del campo disponible esté en 1 significa
DPW-II

que si está disponible de lo contrario si el valor es de 0 no estará disponible, en este ejemplo el único
platillo que no está disponible es el de chuleta con patatas, eso quiere decir que cuando el usuario realice
una petición de los platillos disponibles tendrá que reflejarnos 3 (mariscos, lazaña y milaneza).

2) Creamos nuestro primer archivo index.php el cual contendrá una interfaz sencilla de
bienvenida:

[html]

<!DOCTYPE html>
<html lang=»es»>
<head>
<meta charset=»UTF-8″ />
<title>Modelo-vista-controlador</title>
</head>
<body>
<h1>Bienvenido al restaurant Chefcito</h1>
<section>
<a href= “controlador.php” >Solicite nuestro menú</a>
</section>
</body>
</html>

[/html]

Seguido de un título creamos un enlace para solicitar el menú del restaurante, si observas el enlace apunta
a otro archivo llamado controlador.php

3) Creamos el archivo controlador.php, está demás explicar que este es el controlador de nuestra
aplicación:

[php]

<?php
require_once(“modelo.php”);
$menu = new Platillo();
$pd = $menu->lista_platillos();
require_once(“vista.php”);
?>
DPW-II
[/php]

Si te das cuenta este archivo contiene únicamente código PHP ya que este nunca será mostrado al usuario,
trabajará internamente y como bien mencione anteriormente este será el puente entre la vista y el modelo,
primeramente realizamos una llamada al archivo modelo.php para rescatar la información de la petición
realizada, posteriormente creamos un objeto de la clase Platillo y realizamos una llamada al
método lista_platillo para almacenarlo en una variable $pd y finalmente hacemos una llamada al
archivo vista.php

4) Creamos el archivo modelo.php

[php]

<?php
class Platillo
{
private $platillo;
private $dbh;

public function __construct()


{
$this->platillo = array();
$this->dbh = new PDO(‘mysql:host=localhost;dbname=restaurante’, “root”, “”);
}

private function set_names()


{
return $this->dbh->query(“SET NAMES ‘utf8′”);
}

public function lista_platillos()


{
self::set_names();
$sql= “select nombre, precio from platillos where disponible = 1”;
foreach ($this->dbh->query($sql) as $res)
{
$this->platillo[]=$res;
}
return $this->platillo;
$this->dbh=null;
}
}
?>

[/php]

Creamos una clase Platillo y dentro de la clase un constructor para inicializar los atributos ($platillo y
$dbh) y también realizará la conexión a la base de datos mediante el objeto PDO (PHP Data
DPW-II

Objects), posteriormente creamos dos métodos uno privado y el otro público, el primero únicamente
realizará una consulta para evitar los problemas de tildes (SET NAMES ‘utf8’), el segundo
método lista_platillos será la que recopile toda la información de platillos disponibles mediante una
consulta a la base de datos.

5) Creamos el archivo vista.php

[html]

<!DOCTYPE html>
<html lang=“es”>
<head>
<meta charset=“UTF-8” />
<title>Modelo-vista-controlador</title>
</head>
<body>
<h1>Platillos disponibles</h1>
<table border= “1”>
<tr>
<td><strong>Nombre platillo</strong></td>
<td><strong>Precio platillo</strong></td>
</tr>
<?php
for($i=0;$i<count($pd);$i++)
{
?>
<tr>
<td><?php echo $pd[$i][“nombre”]; ?></td>
<td><?php echo $pd[$i][“precio”]; ?> USD.</td>
</tr>
<?php
}
?>
</table>
</body>
</html>

[/html]

Este archivo será mostrado al usuario con la información procesada y bien formateada, mediante un ciclo
for mostramos tanto el nombre como el precio de los platillos disponibles, el resultado en pantalla será
el siguiente:
DPW-II

Y esa es la forma como trabaja este patrón de desarrollo MVC, puedes ver en el ejemplo como
mantenemos más estructurado y ordenado nuestro código separando cada labor en distintas capas. Todo
lo anterior explicado es una forma nativa de trabajar con este patrón, pero entenderlo es dar un gran paso
para poder comprender mucho mejor cómo funciona un framework PHP.

Recomendación:

Crea una estructura de directorios donde separes modelos de vistas y controladores para que de esa forma
si tu aplicación crece sabrás donde se encuentra ubicado cada uno de los archivos. Si vas a utilizar
funciones y estas serán llamadas continuamente por ejemplo una función que realice la conexión a la
base de datos entonces crea una clase padre para que todos sus clases hijos hereden de ella, de esa forma
optimizaras más tu código.

Para finalizar, lo primordial para comprender mejor el MVC es bastante práctica, si queremos
adentrarnos al mundo de los frameworks PHP saber esto es fundamental de tal forma que si en algún
momento tengamos que afrontar un proyecto que no requiera de un framework trabajar con un MVC
nativo es una buena opción.

Resumen

Modelo: se encarga de, por ejemplo, cargar datos y realizar operaciones en ellos.
Vista: el frontend o interfaz gráfica de usuario (GUI), es la capa que vé el usuario.
Controlador: se encarga de solicitar datos al modelo y enviarlos a la vista. Interconecta el frontend con
el backend.

Entre las ventajas que nos aporta el modelo vista controlador podremos destacar: escalabilidad, orden de
código y fácilmente entendible.

MVC está ampliamente implantado y aceptado en el desarrollo de software desde hace muchísimos años.
Te ayuda a dividir el código frontend y e backend, permitiendo así realizar cambios en las aplicaciones
a varios equipos, por ejemplo, programadores PHP y diseñadores de interfaces web.

También podría gustarte