Академический Документы
Профессиональный Документы
Культура Документы
Tecnologías: PHP
Descripción
Se realiza un breve resumen de las características principales de la adaptación del patrón Modelo
Vista Controlador al lenguaje PHP. Hasta la aparición de los diferentes frameworks dentro del
mundo del desarrollo de PHP, existían dudas sobre el éxito de la aplicación de este patrón a los
desarrollos de PHP. Actualmente, gracias a estos frameworks, su aplicación es más sencilla y los
beneficios producidos son más reconocibles.
Características
El patrón Modelo-Vista-Controlador para el diseño de aplicaciones Web es un estándar de la
industria en el mundo Java. Hay muchos libros y recursos excelentes disponibles sobre el tema
que ayudan a acelerar el proceso de aprendizaje para el equipo de desarrollo. En un breve repaso,
MVC viene de Model, View, Controller, o bien: Modelo, Vista y Controlador. La idea básica de este
patrón es separar nuestros sistemas en tres capas, el Modelo, la Vista y el Controlador.
El Modelo se encarga de todo lo que tiene que ver con la persistencia de datos. Guarda y
recupera la información del medio persistente que utilicemos, ya sea una base de datos, ficheros
de texto, XML, etc.
La Vista presenta la información obtenida con el modelo de manera que el usuario la pueda
visualizar.
El Controlador, dependiendo de la acción solicitada por el usuario, es el que pide al modelo la
información necesaria e invoca a la plantilla(de la vista) que corresponda para que la información
sea presentada.
Hay algo de esfuerzo necesario para aprender a utilizar un marco MVC en php. Sin embargo, para
el desarrollador de aplicaciones Web grandes, este esfuerzo debe ser recompensado por los
numerosos beneficios de utilizar un patrón de diseño MVC, tales como:
Ejemplos
Vemos un ejemplo para montar un simple listado presentado en una tabla HTML, bajo el modelo
de tres capas.
En primer lugar creamos un index.php que será la forma de acceder al sistema. En este caso no
realiza otra tarea, sólo incluir e iniciar el FrontController.
< ?php
//Incluimos el FrontController
require 'libs/FrontController.php';
//Lo iniciamos con su método estático main.
FrontController::main();
?>
El FrontController es el encargado de recibir todas las peticiones e incorporar algunos ficheros.
Después realiza una selección del controlador encargado de atender la petición y produce el
evento correspondiente . Para ello creamos el archivo libs/FrontController.php
< ?php
class FrontController
{
static function main()
{
//Incluimos algunas clases:
//Lo mismo sucede con las acciones, si no hay acción, tomamos index como
acción
if(! empty($_GET['accion']))
$actionName = $_GET['accion'];
else
$actionName = "index";
return self::$instance;
}
}
/*
Uso:
$config = Config::singleton();
$config->set('nombre', 'Federico');
echo $config->get('nombre');
$config2 = Config::singleton();
echo $config2->get('nombre');
*/
?>
Y finalmente, config.php que es el archivo de configuración, hace uso de una instancia de la clase
Config.
< ?php
$config = Config::singleton();
$config->set('controllersFolder', 'controllers/');
$config->set('modelsFolder', 'models/');
$config->set('viewsFolder', 'views/');
$config->set('dbhost', 'localhost');
$config->set('dbname', 'pruebas');
$config->set('dbuser', 'root');
$config->set('dbpass', '');
?>