PHP es uno de los lenguajes de programación más utilizados en el desarrollo web del lado del servidor, impulsando aproximadamente el 76% de los sitios web activos. Cada año, se lanzan nuevas versiones que introducen mejoras en rendimiento, seguridad y funcionalidades. En este artículo, exploraremos las diferencias clave entre las versiones PHP 8.1, 8.2 y la más reciente, PHP 8.3.
Resumen de versiones PHP activas
Con la llegada de PHP 8.3 en noviembre de 2023, PHP 7.4 ha llegado al fin de su vida útil y ya no cuenta con soporte ni actualizaciones. Mientras tanto, PHP 8.0 solo recibe parches de seguridad, lo que convierte a PHP 8.1, 8.2 y 8.3 en las versiones oficialmente admitidas y actualizadas. Ahora, profundicemos en las novedades de cada una de estas versiones.
PHP 8.1: Lanzado el 25 de noviembre de 2021
PHP 8.1 introdujo una serie de características nuevas que mejoraron la sintaxis, el rendimiento y la seguridad del lenguaje. A continuación, se destacan las principales novedades:
- Enumeraciones (Enums): Permiten definir un conjunto de valores predefinidos.
- Propiedades readonly: Se trata de propiedades que solo pueden ser inicializadas una vez.
- Sintaxis «first-class callable»: Facilita el uso de funciones como argumentos.
- Fibers: Mejora la gestión de concurrencia y facilita la ejecución de tareas asíncronas.
- Tipos de intersección: Permiten combinar múltiples tipos en un solo parámetro o variable.
- Mejoras de rendimiento: Introducción de optimizaciones internas que mejoran la velocidad de ejecución.
- Nuevas clases, interfaces y funciones: Ampliación del repertorio de herramientas disponibles para los desarrolladores.
PHP 8.2: Lanzado el 8 de diciembre de 2022
PHP 8.2 se enfocó en introducir más cambios de rendimiento y en simplificar la sintaxis, junto con características innovadoras:
- Clases readonly: Similar a las propiedades readonly, pero aplicable a toda una clase.
- Tipos en Forma Normal Disyuntiva (DNF): Permite tipos más flexibles para los argumentos y devuelve valores de funciones.
- Tipos
null
,false
ytrue
independientes: Ahora pueden ser usados como tipos de retorno o parámetros. - Extensión
Random
: Nueva extensión para mejorar la generación de números aleatorios. - Constantes en traits: Ahora se pueden definir constantes dentro de traits.
- Deprecación de propiedades dinámicas: Se desaconseja la creación de propiedades de objetos de manera dinámica, buscando una estructura de código más clara y segura.
PHP 8.3: Lanzado el 23 de noviembre de 2023
La versión más reciente, PHP 8.3, mantiene el enfoque en la optimización y amplía las capacidades del lenguaje. Algunas de las características más destacadas incluyen:
- Constantes de clase de tipo: Introducción de constantes de clase que pueden ser de un tipo específico.
- Constantes de clase dinámicas y soporte para miembros en enums: Mejora la flexibilidad de las enumeraciones.
- Función
json_validate()
: Facilita la validación de datos JSON. - Función
mb_str_pad()
: Añade la capacidad de rellenar cadenas multibyte. - Atributo
#[\Override]
: Permite indicar de manera explícita cuándo se está sobreescribiendo un método de una clase base. - Mejoras en la extensión
Random
: Ampliación de las capacidades para manejar mejor los números aleatorios.
Compatibilidad de WordPress con PHP 8.x
El soporte de WordPress para PHP 8.x sigue evolucionando. A la fecha, las versiones de PHP 8.0 y 8.1 se consideran compatibles con algunas excepciones, mientras que PHP 8.2 y 8.3 están en fase «beta», lo que significa que pueden requerir ajustes adicionales para un funcionamiento óptimo en sitios WordPress.
Versión de WP | PHP 8.0 | PHP 8.1 | PHP 8.2 | PHP 8.3 |
---|---|---|---|---|
6.4 | ✔️ | ✔️ | ✔️* | ✔️* |
6.3 | ✔️ | ✔️ | ✔️* | ❌ |
6.2 | ✔️ | ✔️* | ✔️* | ❌ |
6.1 | ✔️ | ✔️* | ✔️* | ❌ |
* Indica soporte con excepciones o en fase beta.
Ciclo de vida de PHP 8.1, 8.2 y 8.3
Versión | Fecha de lanzamiento | Soporte activo hasta | Soporte de seguridad hasta |
---|---|---|---|
8.1 | 25 nov 2021 | 25 nov 2023 | 25 nov 2024 |
8.2 | 8 dic 2022 | 8 dic 2024 | 8 dic 2025 |
8.3 | 23 nov 2023 | 23 nov 2025 | 23 nov 2026 |
¿Es recomendable mantener mi aplicación con PHP7 ?
No es recomendable mantener tu aplicación en PHP 7, ya que esta versión ha llegado al fin de su vida útil y ya no recibe actualizaciones ni parches de seguridad. Continuar usando PHP 7 puede exponer tu aplicación a vulnerabilidades y problemas de rendimiento. Migrar a una versión más reciente, como PHP 8.1, 8.2 o 8.3, te permitirá beneficiarte de nuevas características, mejoras de seguridad y un rendimiento optimizado, garantizando una mejor experiencia para los usuarios y una mayor seguridad para tu aplicación.
¿Como puedo actualizar a PHP8?
Para actualizar a PHP 8, primero verifica la compatibilidad de tu aplicación y sus dependencias con la nueva versión. Revisa la documentación de tus frameworks, plugins y librerías para asegurarte de que sean compatibles con PHP 8. Luego, realiza un respaldo completo de tu entorno actual y de tu base de datos para evitar la pérdida de datos. Una vez listo, instala la versión de PHP 8 correspondiente en tu servidor (puedes hacerlo a través de gestores de paquetes como apt
en Ubuntu o yum
en CentOS). Tras la instalación, actualiza la configuración de tu servidor web (Apache, Nginx, etc.) para usar PHP 8, reinicia los servicios, y prueba tu aplicación en un entorno de desarrollo antes de implementarla en producción.
¿Que herramientas puedo usar para actualizar mi aplicación a PHP8?
Aquí tienes algunas herramientas útiles para actualizar tu aplicación a PHP 8:
- PHPCompatibility: Es un conjunto de reglas para PHP_CodeSniffer que permite verificar el código de tu aplicación y detectar problemas de compatibilidad con PHP 8. Puedes usarlo para identificar y corregir errores antes de la actualización.
- RectorPHP: Es una herramienta de refactorización automática que facilita la modernización del código para hacerlo compatible con nuevas versiones de PHP, incluida PHP 8. Rector puede ajustar tu código automáticamente para cumplir con las nuevas sintaxis y prácticas recomendadas.
- PHPStan o Psalm: Estas herramientas de análisis estático te ayudan a identificar problemas de tipo y posibles errores de compatibilidad. Pueden ser útiles para asegurarte de que tu código esté listo para PHP 8 al detectar problemas potenciales antes de la implementación.
- Laravel Shift (para proyectos Laravel): Si tu proyecto utiliza Laravel, Laravel Shift ofrece servicios de migración automatizada para actualizar tu aplicación a PHP 8 y adaptarla a las últimas versiones del framework.
- Composer Update: Para asegurarte de que todas las dependencias de tu proyecto sean compatibles con PHP 8, puedes usar Composer para actualizar paquetes a versiones más recientes que soporten esta nueva versión de PHP. Utiliza
composer update
después de verificar los requisitos de tu proyecto en el archivocomposer.json
. - Docker: Si estás usando Docker, puedes probar la actualización creando un nuevo contenedor con la imagen de PHP 8, lo que te permitirá realizar pruebas en un entorno aislado antes de llevar los cambios a producción.
- Entornos de prueba o staging: Utiliza un entorno de prueba o staging que replique tu entorno de producción para probar la actualización sin afectar a los usuarios finales. Esto te permitirá identificar y solucionar problemas en un entorno controlado.
Estas herramientas y prácticas te ayudarán a hacer una transición más segura y efectiva a PHP 8.
Conclusión
PHP sigue mejorando con cada nueva versión, proporcionando a los desarrolladores más herramientas para crear aplicaciones web más rápidas, seguras y funcionales. Al actualizar a las últimas versiones, puedes aprovechar al máximo estas nuevas características y mejorar el rendimiento de tus aplicaciones.
Si tu proyecto aún no está en PHP 8.x, considera migrar pronto para evitar vulnerabilidades y aprovechar las optimizaciones de rendimiento.