Sincronizar config/ y .env con el esqueleto de Laravel 12: config:publish y CACHE_STORE
Hola, bienvenido. En esta lección vamos a poner la configuración del proyecto al día con el esqueleto de Laravel 12: los archivos de config/ y las variables del archivo .env. Es la sección "Miscellaneous" de la guía oficial, la que dejamos pendiente en la lección anterior. El objetivo es concreto: archivos nuevos y comportamiento idéntico, con los mismos drivers de caché, sesión y cola que antes de empezar.
¿Por qué una lección entera? Porque publicar un archivo de configuración con config:publish --force sobrescribe lo que el proyecto tuviera escrito en él, y porque, entre publicar los archivos y renombrar las variables de entorno, hay un momento en el que la caché cambia de driver sin que hayamos cambiado el archivo .env.
Lo que hay en config/ y en .env.example
Un proyecto nuevo de Laravel 12 viene con 10 archivos en config/: app, auth, cache, database, filesystems, logging, mail, queue, services y session. El nuestro tiene 16: esos 10, en su versión de Laravel 10, más broadcasting.php, cors.php, hashing.php y view.php, que el esqueleto dejó de incluir en Laravel 11, y los de Sanctum y Spatie Permission, que son de sus paquetes y no cambian.
El proyecto llegó a Laravel 11 conservando esos archivos a propósito, porque cada uno lee las variables de entorno de Laravel 10, y cambiarlos a la vez que la estructura del framework habría mezclado 2 cambios de comportamiento en uno. Por ejemplo, nuestro config/cache.php lee CACHE_DRIVER y el de Laravel 12 lee CACHE_STORE, y nuestro .env.example todavía define CACHE_DRIVER y BROADCAST_DRIVER, que los archivos nuevos no leen.
Antes de cambiar nada, vamos a apuntar con qué drivers funciona el proyecto, porque es lo que tiene que seguir igual al terminar:
El plan tiene 3 pasos, en este orden: borrar los 4 archivos que ya incluye el framework, publicar los del esqueleto leyendo el diff de cada uno, y renombrar las variables en .env, .env.example y phpunit.xml. config/filesystems.php queda fuera de esta lección, porque cambia dónde se guardan los adjuntos y le dedicaremos la siguiente.
- 02Los 4 archivos que ya incluye el framework
- 03Publicar los archivos del esqueleto con config:publish
- 04cache.default pasa a database sin cambiar el archivo .env
- 05Las variables de Laravel 12 en .env, .env.example y phpunit.xml
- 06composer qa en verde y el commit