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.

Esta lección incluye un video premium

Regístrate para ver este video y cientos de lecciones exclusivas.

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:

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.

Suscríbete a nuestro boletín

Te enviaremos publicaciones con consejos útiles y múltiples recursos para que sigas aprendiendo.

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

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