# data[].attributes.body
Front Controller es un patrón de diseño de software muy utilizado en aplicaciones web que consiste en definir un único punto de acceso para todas las peticiones HTTP.

# data[].attributes.body
Hay tres beneficios por usar el patrón del controlador frontal.

Control centralizado . El controlador frontal maneja todas las solicitudes a la aplicación web . Esta implementación de control centralizado que evita el uso de múltiples controladores es deseable para hacer cumplir las políticas de toda la aplicación, como el seguimiento y la seguridad de los usuarios.

Seguridad de subprocesos . Un nuevo objeto de comando surge cuando se recibe una nueva solicitud y los objetos de comando no están destinados a ser seguros para subprocesos. Por lo tanto, estará seguro en las clases de comando. Aunque la seguridad no está garantizada cuando se recopilan problemas de subprocesamiento, los códigos que actúan con comando siguen siendo seguros para subprocesos.

Configurabilidad . Dado que solo se necesita un controlador frontal en la aplicación web, la configuración de la implementación de aplicaciones web se simplifica en gran medida. El controlador lleva a cabo el resto del envío, por lo que no es necesario cambiar nada antes de agregar nuevos comandos dinámicos.

# data[].attributes.body
Dentro de public/ no encontrarás todas las páginas dinámicas de tu proyecto sino un único archivo con la extensión PHP: index.php.

Este archivo es lo que se conoce como Front Controller puesto que todas las peticiones de los usuarios a tu sitio web serán redirigidas a este archivo, salvo aquellas que se realicen a otros archivos existentes en el directorio público como imágenes, archivos CSS o de JavaScript.

Esta redirección es posible gracias al servidor de HTTP Apache, su módulo mod_rewrite y el archivo .htaccess que indica que todas las peticiones a archivos o directorios no encontrados deben ser redirigidas a index.php.

# data[].attributes.attachment_link.readable_text
Laravel -como otros frameworks de PHP y otros lenguajes- usa un único punto de acceso a la aplicación llamado Front Controller, en esta lección te hablaré brevemente de cómo funciona este patrón y revisaremos el primero de los directorios que trae nuestro proyecto base de Laravel.

Repositorio

Ver el código de esta lección en GitHub

Dentro del directorio de este nuevo proyecto de Laravel, voy a ejecutar git init, git add . y git commit "first commit" con el objetivo de trabajar de forma ordenada con git.

Git es un sistema de control de versiones que nos permite ir respaldando y sincronizando nuestro trabajo sin tener que crear un centenar de directorios PROYECTO_1, PROYECTO_FINAL_2, etc. Aunque no es necesario saber Git para seguir este curso, puedes aprender Git desde cero con nuestro Curso de Git y GitHub.

Puedes descargar el proyecto a medida que va evolucionando desde su repositorio en GitHub.

A continuación voy a abrir el proyecto con mi IDE PHPStorm, sin embargo puedes desarrollar con PHP y Laravel usando editores como Visual Studio Code y muchos otros.

Lo primero que llamará tu atención es la cantidad de directorios de este nuevo proyecto. Comencemos hablando de public/.

public/, como su nombre lo indica, debe ser el directorio público de tu proyecto. Por ejemplo, si creas un virtual host debes apuntarlo a public/ en vez de al directorio raíz del proyecto. Esto es muy importante puesto que fuera de public/ habrán archivos con información sensible y código que no debe ser accedido por terceros.

Por otro lado, dentro de public/ no encontrarás todas las páginas dinámicas de tu proyecto sino un único archivo con la extensión PHP: index.php.

Este archivo es lo que se conoce como Front Controller puesto que todas las peticiones de los usuarios a tu sitio web serán redirigidas a este archivo, salvo aquellas que se realicen a otros archivos existentes en el directorio público como imágenes, archivos CSS o de JavaScript.

Esta redirección es posible gracias al servidor de HTTP Apache, su módulo mod_rewrite y el archivo .htaccess que indica que todas las peticiones a archivos o directorios no encontrados deben ser redirigidas a index.php. Otros servidores HTTP como Microsoft IIS o Nginx poseen mecanismos diferentes pero el concepto es el mismo: redirigir las peticiones a index.php donde Laravel se hará cargo del resto.

De hecho si abrimos por un momento index.php, agregamos las siguientes 2 líneas de código y guardamos:

<?php
var_dump($_SERVER);
die();

Ahora podremos ver en el navegador cómo se imprime /contactos /about-us o cualquier otra "página" que intentemos visitar y se detiene la ejecución del archivo. Si esto no funciona es muy probable que necesites habilitar el mod_rewrite de Apache. Si ya funciona no olvides quitar esas 2 líneas de código, guardar de nuevo y pasar a la siguiente lección.

Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.

Front Controller Laravel 6

Lección anterior Instalación de Laravel 6 Lección siguiente Rutas básicas en Laravel 6

# data[].attributes.attachment_link.description
Laravel -como otros frameworks de PHP y otros lenguajes- usa un único punto de acceso a la aplicación llamado Front Controller, en esta lección te hablaré brevemente de cómo funciona este patrón y revisaremos el primero de los directorios que trae nuestro proyecto base de Laravel.

# data[].attributes.body
El Front Controller se aplica unsando una FrameWork, es este caos usamos Laravel

# data[].attributes.attachment_caption
Todas las peticiones de los usuarios de nuestro sitio web son redirigidas al archivo index.php

# data[].attributes.body
Entidad de este patrón de diseño.

Frente Controller (Controlador Frontal) - un único controlador para procesar todos los tipos de solicitudes de una aplicación, la aplicación puede ser una aplicación basada en la web que pueden ser aplicaciones de escritorio.

Programador (Dispatcher) - controlador front-end puede utilizar un objeto despachador para despachar la petición al controlador específico apropiado.

Ver (View) - punto de vista es el objeto de la solicitud y ha creado.