Adasfsdggfd

Páginas: 11 (2667 palabras) Publicado: 14 de febrero de 2013
Implementación del Patrón clásico de diseño web Modelo-Vista-Controlador (MVC) en PHP

El patrón clásico del diseño web conocido como arquitectura MVC, está formado por tres niveles:
* El modelo representa la información con la que trabaja la aplicación, es decir, su lógica de negocio.
* La vista transforma el modelo en una página web que permite al usuario interactuar con ella.
*El controlador se encarga de procesar las interacciones del usuario y realiza los cambios apropiados en el modelo o en la vista.
La arquitectura MVC separa la lógica de negocio (el modelo) y la presentación (la vista) por lo que se consigue un mantenimiento más sencillo de las aplicaciones. Si por ejemplo una misma aplicación debe ejecutarse tanto en un navegador estándar como un navegador deun dispositivo móvil, solamente es necesario crear una vista nueva para cada dispositivo; manteniendo el controlador y el modelo original. El controlador se encarga de aislar al modelo y a la vista de los detalles del protocolo utilizado para las peticiones (HTTP, consola de comandos, email, etc.). El modelo se encarga de la abstracción de la lógica relacionada con los datos, haciendo que la vistay las acciones sean independientes de, por ejemplo, el tipo de gestor de bases de datos utilizado por la aplicación.

Las capas de la arquitectura MVC
Para poder entender las ventajas de utilizar el patrón MVC, se va a transformar una aplicación simple realizada con PHP en una aplicación que sigue la arquitectura MVC. Un buen ejemplo para ilustrar esta explicación es el de mostrar una lista conlas últimas entradas o artículos de un blog como este mismo http://arleytriana.blogspot.com/.

Programación simple y llana
Utilizando solamente PHP normal y corriente, el script necesario para mostrar los artículos almacenados en una base de datos se muestra a continuación:

Un script simple

<?php
// Conectar con la base de datos y seleccionarla
$conexion = mysql_connect('localhost','miusuario', 'micontrasena');
mysql_select_db('blog_db', $conexion);
// Ejecutar la consulta SQL
$resultado = mysql_query('SELECT fecha, titulo FROM articulo', $conexion);
?>
<html>
<head>
<title>Listado de Artículos</title>
</head>
<body>
<h1>Listado de Artículos</h1>
<table><tr><th>Fecha</th><th>Titulo</th></tr>
<?php
// Mostrar los resultados con HTML
while ($fila = mysql_fetch_array($resultado, MYSQL_ASSOC))
{
echo "\t<tr>\n";
printf("\t\t<td> %s </td>\n", $fila['fecha']);
printf("\t\t<td> %s </td>\n", $fila['titulo']);
echo "\t</tr>\n";
}
?>
</table>
</body>
</html>
<?php
// Cerrar la conexionmysql_close($conexion);
?>
El script anterior es fácil de escribir y rápido de ejecutar, pero muy difícil de mantener y actualizar. Los principales problemas del código anterior son:
* No existe protección frente a errores (¿qué ocurre si falla la conexión con la base de datos?).
* El código HTML y el código PHP están mezclados en el mismo archivo e incluso en algunas partes estánentrelazados.
* El código solo funciona si la base de datos es MySQL.

Separando la presentación
Las llamadas a echo y printf del listado anterior dificultan la lectura del código. De hecho, modificar el código HTML del script anterior para mejorar la presentación es un muy complicado debido a cómo está programado. Así que el código va a ser dividido en dos partes. En primer lugar, el código PHPpuro con toda la lógica de negocio se incluye en el script del controlador, como se muestra a continuación.

La parte del controlador, en index.php

<?php
// Conectar con la base de datos y seleccionarla
$conexion = mysql_connect('localhost', 'miusuario', 'micontrasena');
mysql_select_db('blog_db', $conexion);
// Ejecutar la consulta SQL
$resultado = mysql_query('SELECT fecha, titulo...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS