Hace poco me contactó un colega por una situación algo complicada que le tocó enfrentar.
La historia comienza así:
Y sigue:
Se va poniendo interesante, ¿no? Veamos un poco más:
El resto te lo podrás imaginar supongo.
En general no soy muy partidario de desarrollar en Windows y desplegar en Linux (Una de las razones que llevan a la falsa idea de que todo va a funcionar bien).
Vayamos a lo importante: ¿cómo tomaron la decisión de migrar a una versión más actualizada?
Bien, ahora está más claro.
Llegados a este punto estamos realmente en un problema: por un lado, el sitio tiene que seguir funcionando.
Por el otro, no podemos pedirle al hosting que habilite una versión de PHP que sabemos que es compatible con nuestro sistema.
¿Qué se puede hacer?
Lo mejor sería buscar una imagen de docker que tenga la versión que buscamos, instalarla en el servidor y seguir la vida como si tal cosa.
Si esa no es una posibilidad, habrá que hacerse a la idea de que la solución tomará algún tiempo… con todo lo que ello implica.
Saltarse versiones de php puede ser bastante arriesgado.
En este caso, ir de la 5.5 directo a la 8.1 implica dejar de lado una serie de cambios que se realizaron al intérprete a tavés de los años, algunos para hacerlo más eficiente y otros para quitarle funciones que ya pueden seguir soportándose.
El camino más seguro llegados a este punto sería ir bajando de versión del lado del hosting (8.1., 8.0, 7.4 y así) hasta llegar a una que, o bien sea compatible con el sistema, o sea la más antigua soportada por el proveedor.
Si se llega al primer escenario (Una versión superior a la que veníamos usando pero en la que el sistema funciona bien) perfecto, tema resuelto.
Si, en cambio, la versión más antigua con la que podemos contar no es compatible con el sistema, tenemos trabajo por delante.
Supongamos por tomar un ejemplo que la versión más baja que nos permite usar el proveedor es la 7.1.
Entre la versión 5.5 y la 7.1 hubo tres versiones intermedias (5.6, 7.0 y la propia 7.1).
La manera más segura de llegar de una versión de php a otra es pasar por todas las intermedias.
Tweet
Antes de que me lo digas, sí, es un trabajo arduo y molesto, lo sé… pero me temo que es la posibilidad menos riesgosa, así que… más vale empezar a trabajar.
Lo que vas a necesitar es seguir este proceso:
- Instalar en un ambiente de pruebas la versión a la que vas a intentar migrar (5.6 sería la primera en este caso)
- Instalar y configurar el sistema en dicho ambiente de pruebas
- Ejecutar las pruebas
- Hacer los ajustes correspondientes al código
- Pasar a la siguiente versión y volver al paso 1
Algunas herramientas que te van a ayudar
Existen algunas herramientas en las que te podés apoyar para hacer este proceso algo menos laborioso:
- RectorPHP para realizar refactors automatizados
- PHPUnit para automatizar las pruebas
- Docker para generar ambientes de ejecución virtualizados
- La guía de php.net para migrar a nuevas versiones
En general, migrar a una nueva versión de php no es precisamente una tarea sencilla pero si encima lo tenés que hacer a las apuradas… puede volverse una verdadera pesadilla.
Esto es algo que difícilmente puedas prevenir si estás en ambientes de hosting que no controlás.
Si este es tu caso tal vez te convenga evaluar migrarte hacia tu propio servidor.
- Cómo agregar una página de error 500 en un proyecto PHP - 31/10/2024
- ¿Cuántos contenedoresnecesita tu php? - 28/10/2024
- Cuál es el mejor framework PHP para hacer APIs REST - 25/10/2024