🎃 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 10 a Laravel 11
04/13 Antes de cambiar nada Cambiar la versión de PHP en Laravel Sail: de PHP 8.1 a PHP 8.2
Tu lectura Quedan 13 min
Lección 4 de 13 · Antes de cambiar nada

Cambiar la versión de PHP en Laravel Sail: de PHP 8.1 a PHP 8.2

13 min de lectura Laravel 11

Hola, bienvenido. En esta lección vamos a cambiar la versión de PHP del contenedor de Laravel Sail, de PHP 8.1 a PHP 8.2, con el proyecto todavía en Laravel 10. Para cambiar la versión de PHP en Sail basta con apuntar el context del servicio laravel.test en compose.yaml al runtime de la versión que quieres, cambiar el nombre de la imagen y reconstruirla con sail build --no-cache. Después subiremos la restricción de PHP en composer.json y comprobaremos que composer qa sigue en verde.

PHP se sube por separado, como vimos en el plan de la lección anterior, porque la versión 8.2 tiene sus propios avisos de obsolescencia: si composer qa sigue en verde después del cambio, sabremos que los fallos que vengan a partir de aquí no son de PHP.

De dónde sale la versión de PHP en Sail

En Sail, la versión de PHP no está en ningún archivo de configuración de Laravel: está en la imagen de Docker con la que arranca el contenedor laravel.test, y esa imagen se construye a partir del Dockerfile que indica el context de compose.yaml. Sail mantiene un Dockerfile por versión de PHP en vendor/laravel/sail/runtimes/, de PHP 8.0 a PHP 8.5 en la versión de Sail que tenemos instalada, así que cambiar de versión es apuntar a otra carpeta y reconstruir:

Diagrama con las 4 etapas de las que sale la versión de PHP en Sail: el context de compose.yaml apunta al runtime 8.2 de vendor, sail build construye con él la imagen sail-8.2/app y sail up recrea el contenedor laravel.test desde esa imagen

Es lo que describe la documentación de Sail sobre versiones de PHP (se abre en una pestaña nueva), y en nuestro caso tiene un paso más, porque el proyecto apunta a la copia retocada de docker/8.1 que vimos en la lección 1. Esa copia deja de hacer falta: el runtime 8.2 de Sail se construye tal cual, y no tiene sentido mantener un Dockerfile propio cuando el oficial funciona.

Lo que queda de esta lección
  1. 02Cambiar el runtime en compose.yaml
  2. 03Reconstruir la imagen y arrancar con PHP 8.2
  3. 04La restricción de PHP en composer.json
  4. 05Comprobar el proyecto en PHP 8.2
  5. 06composer outdated, ahora con PHP 8.2
  6. 07El 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