Actions

Difference between revisions of "Model-View-Controller/es"

From Joomla! Documentation

(Created page with "==Véase También== * Entendiendo los overrides de salida * Desarrolladores * [http://api.joomla.or...")
(Created page with "===Serie sobre desarrollo de Componentes===")
Line 9: Line 9:
 
* [http://api.joomla.org/11.4/Joomla-Platform/Application/JController.html JController]
 
* [http://api.joomla.org/11.4/Joomla-Platform/Application/JController.html JController]
  
===Component development series===
+
===Serie sobre desarrollo de Componentes===
 
<div class="large-6 column">
 
<div class="large-6 column">
 
====Developing a MVC Component for J3.x ====
 
====Developing a MVC Component for J3.x ====

Revision as of 11:29, 28 February 2014

Other languages: català 86% • ‎English 100% • ‎español 100% • ‎français 100% • ‎Bahasa Indonesia 100% • ‎日本語 100% • ‎Nederlands 100% • ‎Kiswahili 100%

Joomla hace un uso extensivo del patrón de diseño Modelo-Vista-Controlador.

Cuando Joomla empieza a procesar una petición de un usuario, como un GET para una página concreta, o un POST con datos de un formulario, una de las primeras cosas que hace es analizar la URL para determinar qué componente será el responsable de procesar la petición, y entregar el control a ese componente.

Si el componente ha sido diseñado de acuerdo al patrón MVC, le pasará el control al controlador. El controlador es el responsable de analizar la petición y determinar qué modelo (o modelos) será necesario para satisfacer dicha petición, y qué vista debería usarse para devolver los datos de vuelta al usuario.

El modelo encapsula los datos usados por el componente. En la mayoría de los casos estos datos provendrán de la base de datos, bien de la de Joomla o bien de una externa, pero también es posible que el modelo obtenga datos de otras fuentes, como a través de una API de web services que corra en otro servidor. El modelo también es responsable de actualizar la base de datos cuando sea oportuno. El propósito del modelo es aislar al controlador y a la vista de los detalles sobre cómo son obtenidos o modificados los datos.

La vista es la responsable de generar la salida que es enviada al navegador por el componente. Llama al modelo para cualquier información que necesita y le da el formato adecuado. Por ejemplo, una lista de elementos de datos extraída del modelo podría incluirse dentro de una tabla HTML por la vista.

Dado que Joomla está diseñado para ser altamente modular, la salida del componente generalmente es sólo una parte de la página web completa que el usuario verá finalmente. Una vez que la vista ha generado la salida del componente entrega el control de vuelta al framework Joomla que entonces carga y ejecuta la plantilla. La plantilla combina la salida del componente y cualesquiera módulos que estén activos en la página actual, de modo que pueda ser entregada al navegador como una sola página.

Para proporcionar poder y flexibilidad adicionales a los diseñadores web, que puede ser que prefieran preocuparse de crear nuevos diseños en lugar de manipular el código subyacente, Joomla divide la vista tradicional en vista y diseño separados. La vista extrae los datos del modelo, como en un patrón MVC tradicional, y a continuación simplemente pone esos datos a disposición del diseño, que es el responsable de dar formato a los datos para ser presentados al usuario. La ventaja de tener esta división es que el sistema de plantillas Joomla proporciona un mecanismo simple para que los diseños sean "reemplazados" en la plantilla. Estos "reemplazos" o "sobreescrituras" del diseño (a menudo llamados directamente por su denominación en inglés, "overrides" de plantilla, o directamente "template overrides" por ser parte de la plantilla, aunque realmente es el diseño lo que está siendo "modificado") son empaquetados directamente con la plantilla y proporcionan al diseñador de plantillas un control total sobre toda la salida del core de Joomla y cualquier extensión de terceros instalada que cumpla con el patrón de diseño MVC,



Véase También

Serie sobre desarrollo de Componentes

Developing a MVC Component for J3.x

Introduction to Developing a 3.x MVC

Developing a MVC Component for J2.5

Introduction to Developing a 2.5 MVC