Laravel, así 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.

Mira el código en GitHub: actual, resultado, comparación.

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 como «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.

En este y otros cursos de PHP uso el IDE PHPStorm, sin embargo puedes desarrollar con PHP y Laravel usando otros editores de tu preferencia como Visual Studio Code y muchos otros.

No olvides excluir los directorios que no sean relevantes para tu proyecto añadiendo su ruta dentro del archivo .gitignore

Lo primero que llamará tu atención al comenzar tu primer proyecto en Laravel es la cantidad de directorios de este nuevo proyecto, pero no te preocupes, te enseñaremos como usar cada uno de ellos poco a poco.

Comencemos hablando de public/.

Como su nombre lo indica, public/ es 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.

En Laravel y otros frameworks 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.

Dentro del directorio public/ puedes almacenar cualquier contenido estático que desees, como imágenes, videos, archivos CSS o JavaScript, siempre que estos no proporcionen información sensible

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 el framework toma control y se hace cargo de procesarlas.

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

<?php
var_dump($_SERVER['REQUEST_URI']); //o $_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.

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 10 Lección siguiente Rutas básicas en Laravel 10