38K Views

MVC: UNA nueva perspectiva En la Construcción de Aplicaciones Web

Christopher Alexander dice: «Cada patrón describe un problema que ocurre una y otra vez en nuestro entorno, y, a continuación, se describe el núcleo de la solución a ese problema, de tal manera que usted puede utilizar esta solución un millón de veces más, sin hacer de la misma manera dos veces».

Como ingeniero de software, todos hemos escuchado a la gente a compartir sus palabras de sabiduría sobre cómo no «reinventar la rueda». Si ya hay una solución a un problema común, es en nuestro mejor interés para utilizar, en lugar de perder el tiempo en la elaboración de nuevas soluciones y perfeccionarlo.

Lo cual es curioso, porque aunque no estoy totalmente de acuerdo con no «reinventar la rueda», yo creo que para resumir perfectamente la esencia de los patrones de diseño en la ingeniería de software, que es lo que vamos a hablar hoy. Más específicamente, estaremos hablando sobre el patrón MVC y cómo juega un papel importante en el desarrollo de una aplicación de gran tamaño.

Patrón MVC (Modelo – Vista – Controlador)

MVC es un patrón de arquitectura de software, que en pocas palabras significa que es un patrón para la definición de la estructura básica y subyacente de trabajo de una aplicación desde un punto de vista arquitectónico. Tradicionalmente se utiliza para la construcción de escritorio GUIs, este modelo ha sido ampliamente adoptado para la creación de aplicaciones web, y cada implementación de este patrón varía en su interpretación, con sutiles diferencias. Es decir, que no hay una manera «correcta» de hacerlo.

MVC, como el nombre sugiere que se divide la aplicación en tres partes conectadas: Modelo, Vista y Controlador

  • Modelo: El modelo es el objeto de la aplicación, que es otra manera de decir que se utiliza para almacenar datos que se utiliza a lo largo de nuestra aplicación y es el puente entre el componente de Vista & el componente del Controlador. El modelo no es consciente de las otras dos partes constitutivas: la vista y el controlador.
  • Vista: La Vista es el modelo de la pantalla de presentación, en el sentido de que la vista es lo que el usuario ve cuando se utiliza la aplicación. Toma los datos que pasan en ella y hace que el resultado final que es visible en la pantalla. En el caso de una aplicación web, se puede imaginar la vista como el final del documento HTML que muestra el navegador web (agente de usuario).
  • Controlador: Controlador define la manera en que el usuario interactúa con la aplicación. Su trabajo es tomar en las entradas de usuario, actualizar el modelo correspondiente en consecuencia, y luego la re-renderizar la vista. El controlador es lo pegamentos tanto el modelo y ver juntos, y la mayoría de la lógica de nuestra aplicación correspondiente a la interfaz de usuario se encuentra.

 

Una manera sencilla de imaginar el patrón MVC es pensar en un modelo que contiene algunos datos estadísticos. La vista muestra los datos que residen dentro del modelo en un gráfico. Este gráfico puede ser un gráfico circular o de un gráfico de barras, dependiendo de lo que prefiera el usuario, que es manejado por el controlador.

No hay mucho más para explorar sobre el patrón MVC, lo que se ha hablado anteriormente, es más que suficiente para captar una comprensión básica de la misma. Vamos a seguir adelante y construir una sencilla aplicación PHP para entender el patrón MVC en más profundidad.

La aplicación que vamos a construir va a ser muy simple. Vamos a utilizar un solo archivo php (index.php) para manejar la lógica de nuestra aplicación web. Vamos a romper nuestra aplicación a los controladores que se corresponden a los diferentes puntos de vista. Todos los controladores de entrar en el Controlador de directorio, todos los puntos de vista va a ir en el directorio de Vista, y todo el modelo va a ir en el Modelo de directorio. Así que aquí está cómo vamos a estructurar los directorios de nuestra aplicación:

Aplicación
-> Controller
-> Model
-> View
-> index.php

 

// index.php

ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(-1);

function autoload($className)
{
    include_once "Controller/{$className}.php";
    include_once "Model/{$className}.php";
}
spl_autoload_register("autoload");

$requestAction = !empty($_GET['action']) ? $_GET['action'] : 'Home';

switch ($requestAction) {
    case 'User':
        $controller = new UserController();
        break;
    default:
        $controller = new HomeController();
        break;
}

$controller->handleRequest();

 

// Controller/UserController.php

class UserController{
    public function handleRequest()
    {
        include "View/userView.php";
    }
}

 

// Controller/HomeController.php

class HomeController{
    public function handleRequest()
    {
        include "View/homeView.php";
    }
}

 

// View/userView.php

echo (''
    . '<h1>Web Application</h1>'
    . '<p>User View</p>'
);

 

// View/homeView.php

echo (''
    . '<h1>Web Application</h1>'
    . '<p>Home View</p>'
);

Lo que estamos haciendo aquí es, básicamente, la recuperación de los detalles de la página que el usuario está visitando desde $_GET[‘action’], que si los mapas del juego de la acción de su correspondiente controlador. Si no coincide, entonces la opción predeterminada es el Controlador principal. Para cada controlador que tenemos, hemos definido una función handleRequest() que se encarga de la petición y ejecuta la aplicación en consecuencia, la representación de un particular punto de vista, o redirigir al usuario a otra página (por ejemplo, después de la exitosa presentación de formulario).

Esperemos que, si se entiende el flujo de la aplicación que estamos construyendo aquí, usted comenzará a ver los beneficios de un MVC aproximación a la construcción de cosas. A mí, personalmente, es mejor organizada y estructurada. Es como ir desde el Procedimiento de Programación Programación Orientada a Objetos, excepto, en este caso, estamos haciendo lo mismo con la construcción de nuestra aplicación.

no Hemos ido mucho en detalle sobre el modelo parte de que el patrón MVC, pero ese es otro tema muy diferente y algo que me gustaría dejar a los lectores a explorar por sí mismos. Para las partes básicas, usted puede trabajar con su modelo (que se utiliza para almacenar datos) dentro del controlador y pasar el modelo a su vista. Recordar que el modelo único objetivo es gestionar los datos, y no es consciente de que tanto el Controlador y la Vista. El controlador es lo que pega tanto la Vista y el Modelo. Y la Vista es la forma de representar el modelo para el usuario. No hay absolutamente ninguna necesidad de forzar a una modelo en una vista en la que no es necesario, por tanto, es posible un punto de vista que no dependen de un modelo.

Category(s) Design uvdesk
. . .

Comment

Add Your Comment

Be the first to comment.

css.php