PHP 8.4 llegó pisando fuerte con hooks de propiedad, visibilidad asimétrica, soporte HTML5 en DOM, mejoras de sintaxis y rendimiento.
📅 Fecha de lanzamiento y ciclo de soporte
PHP 8.4 se lanzó oficialmente el 21 de noviembre de 2024.
Es “General Availability” y recibe soporte activo de 2 años + soporte de seguridad otros 2 años, hasta el 31 de diciembre de 2026.
✨ Novedades destacadas en PHP 8.4
1. Hooks de propiedad
La mayor sorpresa: propiedades con get y set personalizados, sin necesidad de usar getters y setters tradicionales. Ejemplo:
public string $fullName {
get => "$this->first $this->last";
set { [$this->first,$this->last] = explode(' ',$value); }
}Esto refactoriza tu código y elimina código repetitivo.
2. Visibilidad asimétrica
Puedes permitir que una propiedad sea pública para lectura pero solo privada para escritura:
public private(set) string $version;Una mejora potente que va de la mano con los property hooks.
3. DOM + HTML5 mejorado
PHP 8.4 incluye una API DOM moderna que cumple con el estándar HTML5, bajo el namespace Dom\HTMLDocument, con selector CSS, classList, etc.
4. Sintaxis mejorada: new Class() sin paréntesis
Ahora puedes encadenar métodos sin envolver con paréntesis:
$req = new Request()->withMethod('GET');Más limpio y más natural.
5. Nuevas funciones de array
Cuatro funciones nuevas para búsqueda y validación:
array_find()array_find_key()array_any()array_all()
Permiten recorridos rápidos con callbacks.
6. Otras mejoras
mb_trim(), mb_ltrim(), mb_rtrim()ymb_ucfirst(), mb_lcfirst().DateTime::createFromTimestamp()con sub-segundos .- Modo de redondeo más claro en
round(). - Actualizaciones en Curl, BCMath, Intl, Lazy Objects, PDO específicos, JIT, hashing Bcrypt cost aumentado.
⚠️ Deprecaciones relevantes
- Tipos con “nullable implícito” (ej.
function foo(User $u = null)) están deprecados. - Uso de sesiones por GET/POST genera warnings; será removido en PHP 9.
- Deprecación de múltiples funciones:
md5(), sha1(), strtok(), mysqli_ping(), etc. . - Constantes antiguas
SUNFUNCS_RET_*,E_STRICT, CSV escaping, etc. quedan obsoletas.
🛠️ Recomendaciones para migrar a PHP 8.4
Si ya estás en 8.3, considera esperar a una versión mp+1 con corrección de bugs. Luego:
- Revisa tus llamadas a
function(... = null)y sesiones GET/POST. - Aprovecha property hooks y visibilidad asimétrica para limpiar tu lógica OOP.
- Actualiza XPath a la nueva API
Dom\HTMLDocumentsi usas DOM. - Integra herramientas como Rector y PSalm/PhpStan para detectar incompatibilidades.
Recuerda queJS frameworks o CMS como WordPress podrían tardar en adaptarse al 100 %; analiza su compatibilidad antes de desplegar.
👉 Recursos y referencias
- PHP.net – Anuncio oficial de PHP 8.4
- Blog Zend – Guía de features y ciclos de soporte
- RFC DOM HTML5 & selectores CSS
- Laravel News – Recap de features clave
- PHP.Watch – Lista detallada de cambios
