Buenas prácticas antes de actualizar tu versión de PHP

Desde hace unas semanas, contamos con la nueva versión de PHP 7.3 en nuestros servicios de Web Hosting, así que nos parece un buen momento para centrarnos en las  recomendaciones más útiles antes de actualizar tu versión de PHP. Serán especialmente recomendables antes de pasar entre versiones de PHP con notables diferencias, por ejemplo, en un salto de 5.x a 7.x, y lógicamente aplican a cualquier plataforma, no sólo a alojamiento compartido. Estas recomendaciones serán especialmente importantes en el caso concreto de actualizar a la versión 7.x, pues PHP ha introducido bastantes cambios en sus últimas versiones.

El lenguaje PHP se ha caracterizado siempre por ofrecer una buena compatibilidad hacia atrás, de modo que en muchos casos, actualizar las versiones de PHP del servidor no implica cambios drásticos en el código de tus aplicaciones. No obstante, no podemos recomendar nunca realizar un cambio de versión sin habernos asegurado antes que todo va seguir funcionando perfectamente en nuestro sitio web.  Estas pautas te podrán ayudar.

La prueba de fuego, siempre en local

El primer paso que podemos realizar es la migración de versión en nuestro servidor de desarrollo. Si probamos todo en local y las cosas funcionan sin ningún error, entonces podremos estar tranquilos al cambiar la versión de nuestro servidor en producción.

El proceso para cambiar la versión de PHP en tu servidor local depende específicamente de cómo hayas instalado tu entorno de desarrollo. Las variantes aquí son enormes, pero te vamos a ofrecer breves indicaciones para algunas de las más comunes.

  • Si usas el popular software Xampp, tendrás que actualizar todo tu Xampp, para lo que te recomendamos desinstalar Xampp y volverlo a instalar, con la versión de PHP que desees probar. Haz una copia de seguridad de tus archivos y tus bases de datos, por si acaso, antes de realizar estos cambios, aunque generalmente Xampp te preguntará si quieres que estas configuraciones y datos permanezcan en el sistema aunque desinstales.
  • Si usas virtualización, te recomendamos crear una nueva máquina virtual y luego transferir los archivos de un sistema al otro.
  • Si no te importa tener duplicado tu espacio de trabajo, para cada versión de PHP, puedes instalar distintos softwares, con versiones de PHP diferentes en cada caso. Por ejemplo tener Xampp con PHP 5.x y Wamp con PHP 7.
  • Por último, mencionar que algunos instaladores del espacio de trabajo para desarrollar con PHP permiten intercambiar de versión de PHP, con el mismo software, como es el caso de Laragon (Windows) o Mamp Pro (Windows o Mac).

Activar todas las notificaciones, warnings y errores

Es importante que te asegures de tener todas tus notificaciones de errores o advertencias de PHP en local, puesto que así no se te escaparán posibles inconsistencias de tu código, así como errores que puedan pasar inadvertidos. Esto es especialmente importante en el servidor de desarrollo, ya que muchas advertencias no llegan a ser errores fatales, con lo que no se interrumpe la ejecución de la página y nos ofrecen mucha ayudas para mejorar nuestro código.

En muchos de los casos, cuando desarrollas con versiones de PHP antiguas las propias advertencias te avisan de funciones o características del lenguaje que van a desaparecer en versiones de PHP más modernas, con lo que puedes estar preparado antes de tiempo.

Esta configuración generalmente está activa en todos los servidores de desarrollo, pero si no lo está os informamos que lo más adecuado sería realizarla en el php.ini:

error_reporting = E_ALL ^ E_NOTICE ^ E_WARNING

Además, tendrás que activar los errores, para que se muestren en el propio texto de la página con:

display_errors = On

Estar atento a las novedades del lenguaje

El propio sitio de PHP informa con mucho tiempo de anticipación sobre las características que van a cambiar o desaparecer en las futuras versiones del lenguaje. Esta información la podemos encontrar en la documentación de sus funciones y/o métodos incorporados, así como en propios post realizados por la comunidad.

La evolución de PHP más traumática, por la cantidad de cambios que introdujo, la tenemos desde PHP 5.x a 7.x. Si tenemos que hacer una migración en este bloque de versiones te recomendamos leer primero el post Migrar de PHP 5.6.x a PHP 7.0.x.  En la misma página encontrarás multitud de artículos para migración entre otras muchas versiones.

Virtualización

Por último, queremos informarte de una de las mejores prácticas para evitar problemas derivados del despliegue de aplicaciones, utilizada por desarrolladores avanzados. Se basa en la virtualización, que permite disponer en local de exactamente el mismo entorno que se va a tener en remoto.

Mediante virtualización podemos tener, en local, de una copia exacta del sistema operativo que se dispone en el servidor remoto, que incluye el sistema Linux, su distro y versión, versiones del lenguaje, librerías, etc. De este modo, cualquier cosa que funciona en local, podemos estar seguros que funcionará en remoto.

En futuros artículos os explicaremos cómo producir estos entornos de desarrollo basados en virtualización, pero os adelantamos que los podemos conseguir fácilmente con programas como VirtualBox o Vagrant.