En esta lección hablaremos acerca de los cambios a los archivos de configuración de Laravel 11 y cómo se comparan con la versión anterior (Laravel 10). Aprenderás que sucede detrás de escenas cuando Laravel necesita obtener un valor de la configuración, cómo puedes simplificar tus archivos de configuración en Laravel 11 y cómo usar la función env para obtener variables de entorno. Estos conocimientos te ayudarán a personalizar tus aplicaciones de forma segura, aprovechando al máximo los valores por defecto que trae el framework para simplificar el directorio config de tus aplicaciones. Para lograr esto, haremos una comparación entre el proyecto que desarrollamos en el Curso de Laravel 10 desde cero y un proyecto nuevo creado en Laravel 11.

Para saber más acerca de como actualizar tu proyecto visita Actualización de la aplicación a Laravel 11

Utilizando el directorio config

Como ya lo sabes, el framework Laravel incluye la carpeta config/ donde residen diferentes archivos de configuración. Uno de los archivos de configuración modificados más comunmente en este directorio es el archivo app.php, el cual modificamos en una lección anterior del Curso básico de Laravel. En aquella ocasión, modificamos el valor de la configuración 'locale' => 'en' a 'locale' => 'es'.

Laravel combina los valores de los archivos de configuración de la carpeta vendor/laravel/framework/config/ (donde se guardan los valores predeterminados necesarios para el funcionamiento de la aplicación) con los archivos de configuración de tu aplicación, ubicados en app/config, dándole prioridad a app/config.

Laravel le da prioridad al contenido del directorio config por sobre el directorio vendor.

En caso de que un archivo de configuración no exista en config, Laravel simplemente utilizará los valores de entorno por defecto almacenados dentro de vendor. Por esto, de ser necesario, ahora podemos eliminar del directorio app/config valores y/o archivos de configuración que no utilizamos, Laravel simplemente utilizará los valores de entorno por defecto almacenados en vendor.

Importante: No debemos alterar ni eliminar los archivos en la carpeta vendor de Laravel, ya que contienen configuraciones por defecto necesarias para el correcto funcionamiento y seguridad de la aplicación. Hacerlo podría comprometer seriamente su estabilidad y seguridad. Además, cualquier cambio que realicemos a vendor se puede perder cuando realicemos composer update.

Por ejemplo, si quisiéramos eliminar el valor 'locale' => 'es' dentro de  config/app.php. Encontraremos que el idioma de nuesta aplicación regresa a su valor por defecto (Inglés). Para comprobar este comportamiento podemos utilizar el siguente comando:

php artisan config:show app

Este comando nos devolverá una lista con todos los valores de configuración seleccionados por la aplicación. Allí podemos comprobar que como resultado de borrar el flag locale desde config el valor del flag ha cambiado automáticamente de es (Español) a en (Inglés, valor por defecto).

Utilizando variables de entorno

Otro método con el que podemos modificar los valores de configuración sin necesidad de modificar el directorio config es agregar nuestros valores de configuración directamente dentro del archivo de entorno .env utilizando las llaves que usa Laravel por defecto. Por ejemplo:

APP_LOCALE=es

Este método es recomendable cuanto tenemos variables que cambian dependiendo del entorno que implementemos, por ejemplo, que tengan valores diferentes entre un entorno de desarrollo y de producción. De lo contrario, puedes cambiar los valores de config directamente.

Cambios en Laravel 11

La diferencia más importante en el sistema de configuración de Laravel 11 respecto a versiones anteriores, es que Laravel 11 incluye menos configuraciones dentro del directorio config/, e incluso omite algunos archivos de configuración poco usados que se eran incluidos en versiones previas, como por ejemplo, el archivo de configuración para broadcasting.

Estos archivos y configuraciones todavía existen dentro del directorio vendor/laravel/framework/[nombre del archivo]. Si queremos incluir nuevamente alguno de estos archivos, solo necesitamos ejecutar el comando php artisan config:publish [nombre del archivo], por ejemplo, en el caso de broadcasting, podemos ejecutar:

php artisan config:publish broadcasting

Esto importará automáticamente el archivo de configuración de regreso al directorio config/, donde estará disponible nuevamente para modificar sus valores de manera segura.

Adicionalmente, si omitimos el nombre del archivo en el comando php artisan config:publish, Laravel nos mostrará un menú interactivo en consola donde podremos ver y seleccionar los archivos de configuración disponibles para publicar en nuesta aplicación.

Notas finales

Con esta introducción ya dispones de los conocimientos básicos necesarios para manejar los archivos de configuración del framework y cómo publicarlos o modificarlos según los requerimientos de tu aplicación. En la siguiente lección, hablaremos sobre los Service Providers.

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

Lección siguiente Cambios a los Service Providers en Laravel 11