FuelPHP - Descripción general de la arquitectura
FuelPHP se basa en pruebas de batalla Model-View-Controller arquitectura junto con HMVC (Hierarchical MVC)apoyo. Si bien MVC proporciona un desarrollo de aplicaciones flexible y en capas, HMVC va un paso más allá para permitir la widgetización de la aplicación web.
La fortaleza de FuelPHP es que no impone formas específicas de desarrollar una aplicación. Simplemente proporciona una estructura estándar simple y fácil de usar. Los desarrolladores son libres de utilizar el conjunto predefinido de funciones proporcionado por FuelPHP o modificarlo cuando sea necesario. Todas las funciones proporcionadas por FuelPHP, incluida la función principal, se pueden cambiar de acuerdo con los requisitos de la aplicación.
Modelo
El modelo es la entidad comercial de la aplicación. Controlador y Vista intercambian datos en forma de Modelo. El modelo permite una representación uniforme de nuestros datos comerciales. Permite que la capa de la base de datos interactúe con la capa de la aplicación web de forma estándar y proporciona una opción para seleccionar, guardar, editar y eliminar las entidades de nuestra base de datos.
Controlador
Una aplicación MVC típica comienza desde un controlador. Una vez que un usuario envía una solicitud a la aplicación web FuelPHP, la aplicación recopila toda la información sobre la solicitud y la envía al controlador. El controlador realiza la lógica comercial requerida de la página solicitada y luego llama a la Vista relevante junto con los datos procesados en forma de Modelos.
Ver
Ver es la capa de presentación de la aplicación MVC. Ver decide cómo mostrar el modelo al usuario. Admite la representación simple de datos en el diseño avanzado, lo que permite que el sitio web normalice el diseño en todas las páginas. View también proporciona compatibilidad con temas, lo que permite un cambio de diseño rápido en toda la aplicación.
Presentador
Presentador es una función especial proporcionada por FuelPHP. Es el pegamento entre Controller y View. El controlador puede compartir parte de su responsabilidad de bajo nivel, como recuperar el modelo de la base de datos, generar datos para la vista, etc. El controlador llama a Presenter en lugar de View, que a su vez llama a View. Presenter permite la separación pura de la lógica empresarial y la capa de presentación.
MVC jerárquico
FuelPHP ofrece una opción para llamar a un controlador desde otro controlador, similar a la solicitud del cliente (navegador). Si algún controlador llama a otro controlador, el controlador llamado devolverá la respuesta al controlador que llama en lugar de mostrarla al cliente (navegador). Esto permitewidgetizationde la aplicación web. Por ejemplo, la sección de comentarios se puede mostrar como una página independiente y como una subsección de la página principal (blog).
Módulo
Una de las características más destacadas de FuelPHP es que una sección de la aplicación web se puede convertir en módulos, que se pueden compartir entre las diferentes aplicaciones. Por ejemplo, un módulo de blog creado para una aplicación se puede reutilizar en otra aplicación simplemente copiando el código del módulo de la aplicación de origen a la aplicación de destino.
Tenga en cuenta que crear un nuevo módulo es tan simple como desarrollar la aplicación principal. La estructura es similar a la aplicación principal con la única excepción de que el módulo debe codificar una carpeta separada.
Paquete
FuelPHP ofrece una opción para organizar el código en una sola unidad llamada Paquete. Un paquete puede contener una o más funciones necesarias para la aplicación web. Por ejemplo, un componente de base de datos como ORM, correo electrónico, etc., puede organizarse en un paquete y usarse cuando sea necesario.
Un paquete es diferente de un módulo en el sentido de que el paquete no contiene páginas web o páginas web parciales. El paquete se puede utilizar en FuelPHP así como en cualquier otro marco PHP.
Flujo de trabajo
El flujo de trabajo de FuelPHP es simple y fácil de entender. Se muestra en el siguiente diagrama.
El usuario envía una solicitud a la aplicación.
El controlador recibe la solicitud y recopila información al interactuar con el modelo, que a su vez interactúa con la base de datos.
El controlador recopila información al interactuar con otro controlador enviando una solicitud secundaria a los otros controladores.
El controlador envía el modelo recuperado a la vista, que a su vez genera la presentación y la envía al cliente como respuesta.
En algunos casos, el controlador puede pasar el control al presentador. En ese caso, el presentador recopila información del modelo y la envía al cliente. Aquí, el presentador no realiza ninguna lógica comercial, excepto recuperar el modelo de la base de datos.