Está usted en Indice > Construcción > Lenguajes > PHP > Lecciones y Paso a Paso > MVC en tres pasos, en PHP y sin objetos
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

MVC en tres pasos, en PHP y sin objetos (2)

2. C de Controlador

El controlador no accede (directamente) a la base de datos, ni genera (directamente) HTML; se limita a obtener valores, procesarlos y obtener otros valores (además de la gestión de sesiones, cookies, logs y ese tipo de tonterías). Lo típico es recoger los valores de un formulario, procesarlos, trabajar un poco con la base de datos, procesar algo más, y almacenar el resultado en una o varias variables:

$letra = $POST["letra"];
if (($letra < "A") || ($letra > "Z")) {
include "letranovalida.php";
} else {
$productos = obtener_productos ($letra);
include "listadoproductos.php";
}

letranovalida.php y listadoproductos.php son parte de la vista. El segundo fichero hace uso de la variable $productos para mostrar el listado. Como se puede ver, el controlador no se mete con HTML; se limita a obtener el listado de la base de datos y pasárselo, tal cual, a la vista.

Razones

De este modo, el código que "hace algo" está perfectamente separado del código dedicado a crear HTML, lo que ayuda a evitar el spaghetti.

3. V de Vista

La vista es la parte de la aplicación dedicada a generar HTML. Puede ser simple HTML estático:

<h1>Listado de productos</h1>

O HTML dinámico generado en respuesta a una consulta, por ejemplo:

<table>
<?php
foreach ($productos as $p) {
?> <tr><td>
<a href="verproducto.php?id=<?=$p["id"]?>"><?=$p["nombre"]?></a>
</td>
<td><?=$p["cantidad"]?></td>
</tr>
<?php } ?> </table>

La vista no debería llamar a ninguna función; debería limitarse a construcciones de control de flujo simple: if, for/foreach, while, ...

Todas las variables empleadas por la vista deberían proceder del controlador; utilizar directamente variables procedentes del usuario es una práctica muy peligrosa.

Razones

Tener la vista separada del controlador permite cambiar la aplicación para que genere, en lugar de HTML, algo distinto (por ejemplo, WML), sin tener que tocar más que una parte completamente delimitada del código.

Básicamente, MVC es esto. Lo demás (objetos, etc) son refinamientos





Autor: Jacobo Tarrío
http://www.mononeurona.org/index.php?idp=430

Usuarios que han visto este tema también han visto...

- Solucionar errores con MySQL
- Interfaz de navegación por pestañas con Ajax y PHP
- Web Service: WSDL y UDDI
- Comentarios en PHP
- Recuperado la calidad de una imagen JPEG en PHP


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad






Cursos de Community Manager

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 26-05-2012 a las 05:58:25