🎃 12 meses por 75 €

El plan anual a mitad de precio hasta el 31 de octubre.

Aprovechar la oferta

🎃 Halloween: 12 meses por 75 €

Plan anual a mitad de precio, para altas y renovaciones. Solo hasta el 31 de octubre.
Aprovechar la oferta
Saltar al contenido
Curso Actualizar un proyecto de Laravel 11 a Laravel 12
07/09 La actualización a Laravel 12 Sincronizar config/ y .env con el esqueleto de Laravel 12: config:publish y CACHE_STORE
Tu lectura Quedan 20 min
Lección 7 de 9 · La actualización a Laravel 12

Sincronizar config/ y .env con el esqueleto de Laravel 12: config:publish y CACHE_STORE

20 min de lectura Laravel 12

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:

Terminal
sail artisan about --only=drivers
Salida
Drivers .................................................................... Broadcasting ........................................................... log Cache ................................................................. file Database ............................................................. mysql Logs ........................................................ stack / single Mail ................................................................... log Queue ................................................................. sync Session ............................................................... file

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.

Lo que queda de esta lección
  1. 02Los 4 archivos que ya incluye el framework
  2. 03Publicar los archivos del esqueleto con config:publish
  3. 04cache.default pasa a database sin cambiar el archivo .env
  4. 05Las variables de Laravel 12 en .env, .env.example y phpunit.xml
  5. 06composer qa en verde y el commit
Sigue leyendo con tu suscripción El curso completo, con el certificado y el foro, está incluido en la suscripción. Ver los planes