Recibe toda la actualidad del sector tech y cloud en tu email de la mano de RevistaCloud.com.

Suscripción boletín

PHP 8.4: Un salto evolutivo con nuevas funciones, mayor claridad y mejor rendimiento

Un repaso a la evolución reciente de PHP

PHP se ha consolidado como el lenguaje de referencia para el desarrollo web backend, impulsando millones de sitios y aplicaciones en todo el mundo. Cada nueva versión aporta mejoras significativas en rendimiento, sintaxis y seguridad. Desde PHP 8.0 —que supuso una revolución con el motor JIT, los tipos de unión y los atributos— hasta PHP 8.4, la evolución ha sido constante y pensada para facilitar la vida al desarrollador, aumentar la seguridad y mantener la relevancia del ecosistema.

Principales hitos recientes:

  • PHP 8.0 (2020): Motor JIT, atributos, tipos de unión, mejoras en match, throw como expresión.
  • PHP 8.1 (2021): Enumeraciones (enum), propiedades readonly, Fibers para concurrencia, mejoras en rendimiento.
  • PHP 8.2 (2022): Tipos de lectura-only, constantes readonly, desprecación de dynamic properties, true types.
  • PHP 8.3 (2023): Tipos para constantes de clase, mejoras en la herencia, nuevas funciones array, rendimiento optimizado.
  • PHP 8.4 (2024): El enfoque se centra en facilitar aún más el código limpio, la claridad semántica y la seguridad, con nuevas capacidades para trabajar con propiedades, visibilidad, manejo de datos y la API DOM.

¿Qué novedades aporta PHP 8.4?

Hooks para propiedades: getters y setters elegantes y nativos

Uno de los avances más notables de PHP 8.4 es la incorporación de hooks para propiedades. Ahora es posible definir lógica personalizada cuando se lee o escribe una propiedad, directamente en la declaración, sin necesidad de implementar manualmente los clásicos métodos getX o setX. Esto mejora la legibilidad, reduce errores y facilita la integración con IDEs y herramientas de análisis.

Ejemplo antes (PHP <= 8.3):

class Locale {
    private string $codigoPais;

    public function setCodigoPais(string $codigoPais): void {
        $this->codigoPais = strtoupper($codigoPais);
    }
    // ...getter...
}

Ejemplo con PHP 8.4:

class Locale {
    public string $codigoPais {
        set (string $codigoPais) {
            $this->codigoPais = strtoupper($codigoPais);
        }
    }
}

Esto permite, además, implementar propiedades calculadas (computed properties) y controlar la asignación de valores de manera más segura.


Visibilidad asimétrica: control granular de lectura y escritura

PHP 8.4 introduce la posibilidad de definir alcances distintos para lectura y escritura en una propiedad pública. Es decir, una propiedad puede ser pública para lectura pero privada para escritura, evitando la necesidad de escribir métodos repetitivos y mejorando la encapsulación.

class Version {
    public private(set) string $version = '8.4';
}

Ahora, cualquier parte del código puede leer $version, pero solo métodos internos pueden modificarlo.


Nueva API DOM y soporte HTML5 completo

La nueva API DOM basada en el espacio de nombres Dom y la clase HTMLDocument permite trabajar con documentos HTML5 de forma más fiable y estándar, corrigiendo viejos errores y mejorando la interoperabilidad.

$dom = Dom\HTMLDocument::createFromString('<main><article>Ejemplo</article></main>');
$node = $dom->querySelector('main > article:last-child');

Deprecaciones y marcado nativo de métodos obsoletos

Ahora es posible usar el atributo #[\Deprecated] para señalar métodos, funciones y constantes de clase que se consideran obsoletos, generando advertencias automáticas y ayudando en la transición del código heredado.

class MyClass {
    #[\Deprecated(message: "Usa getVersion en su lugar", since: "8.4")]
    public function getOldVersion() { /* ... */ }
}

Mejoras en BCMath y manejo de precisión arbitraria

PHP 8.4 incorpora la clase BcMath\Number, permitiendo operaciones matemáticas de alta precisión con una sintaxis más intuitiva y orientada a objetos.

use BcMath\Number;

$num1 = new Number('0.12345');
$num2 = new Number('2');
$result = $num1 + $num2; // '2.12345'

Nuevas funciones de arrays

Se incorporan utilidades como array_find, array_find_key, array_any y array_all, acercando el manejo de arrays en PHP a lo que ofrecen otros lenguajes modernos.

$animal = array_find(['perro', 'gato', 'vaca'], fn($v) => str_starts_with($v, 'g')); // 'gato'

Más cambios destacados

  • Subclases específicas para PDO: Mejor tipado y métodos más claros para cada base de datos.
  • Acceso directo a métodos tras instanciar (new MyClass()->method() sin paréntesis adicionales).
  • Nueva implementación JIT más eficiente.
  • Nuevas funciones de manipulación de cadenas multibyte (mb_trim, mb_ucfirst, etc.).
  • API de objetos Lazy, mejoras en DateTime, Reflection, y más.

Comparativa rápida: PHP 8.4 vs versiones anteriores

CaracterísticaPHP 8.0PHP 8.1PHP 8.2PHP 8.3PHP 8.4
Motor JIT✔️✔️✔️✔️✔️ Mejorado
Enum✔️✔️✔️✔️
Readonly properties✔️✔️✔️✔️
Hooks propiedades✔️ Novedad
Visibilidad asimétrica✔️ Novedad
API DOM HTML5✔️ Novedad
Atributo #[\Deprecated]✔️ Novedad
Nuevas array_*()✔️✔️ Mejoradas
BCMath orientado objetos✔️ Novedad
Compatibilidad backward✔️✔️✔️✔️✔️ (con deprecaciones)

¿Por qué actualizar a PHP 8.4?

  • Código más limpio y mantenible gracias a los hooks y la visibilidad asimétrica.
  • Mayor seguridad con controles de acceso y nuevas funciones de auditoría.
  • Mejor rendimiento gracias a optimizaciones en JIT y nuevas funciones nativas.
  • Mayor compatibilidad y soporte para estándares modernos en HTML5, arrays y precisión numérica.
  • Facilidad para el desarrollador con menos boilerplate, más claridad en errores y advertencias automáticas sobre obsolescencia.

Conclusión

PHP 8.4 consolida la madurez del lenguaje, facilitando la escritura de código más limpio, robusto y seguro. La actualización resulta especialmente atractiva para proyectos nuevos y existentes que busquen aprovechar las últimas tendencias en desarrollo web, mejorar su rendimiento y facilitar la evolución de su base de código.

La recomendación para equipos técnicos y desarrolladores es clara: si tu stack lo permite, da el salto a PHP 8.4 y aprovecha su nueva arquitectura y funcionalidades avanzadas.

encuentra artículos

newsletter

Recibe toda la actualidad del sector tech y cloud en tu email de la mano de RevistaCloud.com.

Suscripción boletín

LO ÚLTIMO

×