Una imagen destacada con un portátil, mostrando el logo oficial de PHP.net de PHP 8.4, y el icónico elefante de PHP.

Aspectos destacados de PHP 8.4: Qué hay de nuevo, características y mejoras explicadas

Cargada con potentes características y mejoras, la última versión de PHP 8.4 promete hacer que la codificación sea más eficiente y flexible.

Lanzada oficialmente a finales de noviembre de 2024, en SiteGround, PHP 8.4 ha estado disponible en beta desde agosto de 2024, cuando fuimos una de las primeras empresas en ponerla a prueba en todos nuestros servidores.

Desde entonces, hemos visto que se está volviendo cada vez más popular. Más de 6000 propietarios de sitios web que alojan con SiteGround ya la han probado en su sitio web.

Si te preguntas si deberías hacer el cambio y de qué va todo el alboroto, sigue leyendo mientras cubrimos todo lo que necesitas saber sobre PHP 8.4, desde sus características destacadas hasta consejos prácticos sobre quién se beneficiará más de ella. ¡Vamos a sumergirnos!

Puntos Clave de PHP 8.4

PHP 8.4 marca una actualización significativa en el ciclo de vida de PHP, introduciendo correcciones de errores, características y mejoras que optimizan el rendimiento y el desarrollo.

Características como el manejo mejorado de propiedades, nuevas funciones auxiliares y herramientas avanzadas de base de datos simplifican la codificación y mejoran la eficiencia.

Usar las versiones más recientes también ayuda a proteger contra vulnerabilidades a largo plazo.

Sin embargo, como propietario de un sitio web, debes tener cuidado: las versiones más recientes pueden no ser compatibles con tu sitio web. Recomendamos probarlo primero en una copia de ensayo del sitio web.

Cronología de Lanzamiento y SiteGround

PHP 8.4 (Beta 3) fue lanzado el 15 de agosto de 2024. SiteGround introdujo acceso anticipado el 20 de agosto de 2024, para que nuestros clientes pudieran usarlo para pruebas lo antes posible.

El lanzamiento de disponibilidad general (GA) de PHP 8.4 fue el 21 de noviembre de 2024. SiteGround añadió la versión oficial a nuestros servidores el 26 de noviembre de 2024, sólo cinco días después de que se anunciara.

¿Qué hay de nuevo en PHP 8.4?

PHP 8.4 introduce múltiples nuevas características que pueden categorizarse en mejoras de sintaxis, mejoras de bibliotecas y API, y mejor manipulación de arrays.

1. Mejoras de Sintaxis y Lenguaje

1.1. Property Hooks

En versiones de PHP anteriores a 8.4, gestionar el acceso y modificación de propiedades típicamente implicaba definir métodos getter y setter explícitos dentro de una clase.

Este enfoque, aunque funcional, a menudo llevaba a un código más verboso y separaba el comportamiento de la propiedad de su declaración.

class User {
    private string $firstName;
    private string $lastName;

    public function __construct(string $firstName, string $lastName) {
        $this->firstName = $firstName;
        $this->lastName = $lastName;
    }

    public function getFullName(): string {
        return $this->firstName . ' ' . $this->lastName;
    }

    public function setFullName(string $fullName): void {
        [$this->firstName, $this->lastName] = explode(' ', $fullName, 2);
    }
}

$user = new User('John', 'Doe');
echo $user->getFullName(); // Outputs: John Doe
$user->setFullName('Jane Smith');
echo $user->getFullName(); // Outputs: Jane Smith

En este ejemplo, los métodos getFullName y setFullName se utilizan para acceder y modificar el nombre completo del usuario.

Con la introducción de los property hooks en PHP 8.4, los desarrolladores ahora pueden definir comportamientos personalizados para el acceso (get) y modificación (set) de propiedades directamente dentro de la declaración de la propiedad.

Esta característica simplifica el código al integrar la lógica dentro de la propiedad misma.

Usando Property Hooks en PHP 8.4:

class User {
    private string $firstName;
    private string $lastName;

    public function __construct(string $firstName, string $lastName) {
        $this->firstName = $firstName;
        $this->lastName = $lastName;
    }

    public string $fullName {
        get => $this->firstName . ' ' . $this->lastName;
        set {[$this->firstName, $this->lastName] = explode(' ', $value, 2);}
    }
}

$user = new User('John', 'Doe');
echo $user->fullName; // Outputs: John Doe
$user->fullName = 'Jane Smith';
echo $user->fullName; // Outputs: Jane Smith

En este ejemplo actualizado, la propiedad fullName utiliza property hooks para definir los comportamientos get y set directamente dentro de su declaración.

Este enfoque reduce la necesidad de métodos separados y mantiene la lógica de la propiedad encapsulada dentro de su definición.

Para una comprensión completa y ejemplos adicionales, consulta el manual oficial de PHP sobre property hooks.

1.2. Visibilidad Asimétrica

En PHP 8.4, la visibilidad asimétrica permite a los desarrolladores definir niveles de acceso separados para la lectura y escritura de propiedades de clase.

Una captura de pantalla de un fragmento de código de la documentación oficial de PHP.net, destacando cómo las nuevas mejoras de visibilidad asimétrica cambian las prácticas de codificación.

La declaración de visibilidad public private(set) se utiliza para permitir el acceso público para lectura pero restringir el acceso privado para establecer el valor. Esto permite que la propiedad sea legible desde fuera de la clase pero solo modificable dentro de la clase.

1.3. Atributo #[\Deprecated]

En PHP 8.4, se introdujo el atributo #[\Deprecated] para marcar clases, métodos, funciones o propiedades como obsoletas.

Esto sirve como una indicación formal de que el elemento marcado se desaconseja para su uso y puede ser eliminado en futuras versiones.

Utilizar este atributo mejora la claridad del código y ayuda a los desarrolladores a identificar y alejarse de las características obsoletas.

1.4. New MyClass()->method() sin Paréntesis

En PHP 8.4, la sintaxis para invocar un método directamente después de crear una nueva instancia de una clase ha sido mejorada. Anteriormente, instanciabas una clase y luego llamabas a un método en esa instancia en dos pasos separados:

$instance = new MyClass();

$instance->method();

Con PHP 8.4, ahora puedes encadenar la llamada al método directamente a la instanciación, eliminando la necesidad de paréntesis:

new MyClass->method();

Esta sintaxis simplificada mejora la legibilidad del código y reduce la verbosidad.

2. Mejoras de Bibliotecas y API

2.1. API de Objetos para BCMath

En PHP 8.4, la extensión BCMath introduce la clase BcMath\Number, proporcionando un enfoque orientado a objetos para la aritmética de precisión arbitraria.

Una captura de pantalla de un fragmento de código de la documentación oficial de PHP.net, destacando cómo implementar un enfoque orientado a objetos para la aritmética de precisión arbitraria usando la nueva clase BcMath\Number.

Esta mejora permite un código más intuitivo y legible al realizar cálculos decimales.

2.2. Nuevas Características de ext-dom con Soporte Mejorado para HTML5

La extensión ext-dom ha sido mejorada para proporcionar un soporte robusto y conforme a los estándares para analizar y manipular documentos HTML5.

Esta mejora aborda problemas de larga data e introduce nuevas características que simplifican el trabajo con contenido HTML5.

Mejoras Clave:

  1. Introducción de la Clase Dom\HTMLDocument:
    • Se ha añadido una nueva clase, Dom\HTMLDocument, al espacio de nombres Dom. Esta clase ofrece una interfaz moderna y orientada a objetos para manejar documentos HTML5, asegurando una mejor integración y usabilidad.
  2. Mejora en el Análisis y Serialización:
    • La nueva API proporciona un análisis y serialización precisos de documentos HTML5, resolviendo problemas de conformidad anteriores. Esto asegura que el contenido HTML5 se maneje correctamente, facilitando una manipulación de documentos más confiable.
  3. Funcionalidad Mejorada:
    • Se han introducido varias funciones nuevas para simplificar tareas comunes, como consultar elementos usando selectores CSS y recorrer el DOM. Estas adiciones hacen que sea más conveniente trabajar con documentos HTML5.

2.3. Subclases Específicas de Controladores PDO

En PHP 8.4, la introducción de subclases específicas de controladores PDO mejora la flexibilidad y funcionalidad de la extensión PDO (PHP Data Objects). Esta mejora permite a los desarrolladores acceder a características de base de datos como analizadores SQL específicos del controlador, que anteriormente eran inaccesibles a través de la clase genérica PDO.

Características Clave:

  • Acceso a Métodos Específicos del Controlador: Cada controlador PDO ahora tiene su propia subclase, permitiendo el acceso a métodos únicos para ese sistema de base de datos. Por ejemplo, la subclase Pdo\Sqlite proporciona métodos como createFunction(), que son específicos de SQLite.
  • Mejora en la Claridad del Código: Al utilizar estas subclases, el código se vuelve más legible y mantenible, ya que las funcionalidades específicas de la base de datos están encapsuladas dentro de sus respectivas clases.
// Usando PDO::connect() para instanciar la subclase específica del controlador

$pdo = PDO::connect('sqlite:/path/to/database.db');

// Usando el método específico del controlador

$pdo->createFunction('my_function', function($value) {

return strtoupper($value);

});

En este ejemplo, PDO::connect() devuelve una instancia de Pdo\Sqlite, permitiendo el acceso a métodos específicos de SQLite como createFunction().

Compatibilidad hacia atrás:

Esta mejora mantiene la compatibilidad hacia atrás. El código existente que utiliza la clase genérica PDO sigue funcionando como antes. Los desarrolladores pueden optar por utilizar las subclases específicas del controlador cuando necesiten acceso a características específicas de la base de datos.

2.4. Actualizaciones de la Biblioteca Estándar

Más allá de los cambios importantes en la biblioteca y la API, PHP 8.4 refina su biblioteca estándar con nuevas funciones de utilidad útiles y mejoras sutiles.

Por ejemplo, los desarrolladores ahora tienen acceso a fpow() para exponenciación de punto flotante, nuevos objetos perezosos y nuevos métodos para gestionar las cabeceras de respuesta HTTP.

Además, la biblioteca DateTime recibe actualizaciones centradas en la precisión, lo que mejora cómo PHP maneja tareas relacionadas con el tiempo. Estas actualizaciones, aunque de menor alcance, contribuyen a una experiencia de desarrollo más fluida y eficiente.

3. Nuevas Funciones Auxiliares

PHP 8.4 introduce nuevas funciones de arrays, proporcionando formas más versátiles y eficientes de manipular arrays.

  • array_findBusca en un array el primer elemento que satisface una condición dada.
  • array_find_keyEncuentra la clave del primer elemento en un array que cumple una condición especificada.
  • array_anyComprueba si algún elemento en un array satisface una condición dada.
  • array_allDetermina si todos los elementos en un array cumplen una condición especificada.
$numbers = [1, 2, 3, 4, 5];

// Encuentra el primer número par
$firstEven = array_find($numbers, fn($n) => $n % 2 === 0);
echo $firstEven; // Muestra: 2

// Encuentra la clave del primer número mayor que 3
$key = array_find_key($numbers, fn($n) => $n > 3);
echo $key; // Muestra: 3

// Comprueba si algún número es mayor que 4
$anyGreaterThanFour = array_any($numbers, fn($n) => $n > 4);
var_dump($anyGreaterThanFour); // Muestra: bool(true)

// Comprueba si todos los números son positivos
$allPositive = array_all($numbers, fn($n) => $n > 0);
var_dump($allPositive); // Muestra: bool(true)

Estas adiciones simplifican las operaciones con arrays, mejoran la claridad del código y reducen la necesidad de bucles verbosos.

Deprecaciones de PHP 8.4

Con cada nueva versión de PHP, algunas características se marcan como obsoletas para dar paso a mejores alternativas. Las deprecaciones ayudan a PHP a evolucionar mientras dan tiempo a los desarrolladores para ajustar su código.

Una de las deprecaciones notables en PHP 8.4 es la eliminación de propiedades dinámicas en objetos estándar, una característica utilizada durante mucho tiempo para asignaciones rápidas y ad hoc de propiedades. Otro ejemplo es la deprecación de tipos nulos implícitos.

Ahora se anima a los desarrolladores a usar propiedades tipadas o métodos mágicos como __get y __set para un mejor rendimiento y claridad.

Para una lista completa de características obsoletas, puedes consultar la documentación oficial publicada por el equipo de PHP.

1. Cambios incompatibles hacia atrás

Hay una diferencia entre deprecaciones y cambios incompatibles hacia atrás. Con cada lanzamiento, también hay cambios que rompen completamente cómo funcionan ciertas sintaxis y funciones de código.

Para una lista completa de actualizaciones incompatibles hacia atrás, consulta la documentación oficial de PHP.

Esto significa que debes tener mucho cuidado al cambiar a una versión más reciente. A menudo, si estás usando software de terceros, puedes encontrarte con problemas ya que lleva tiempo para que los desarrolladores actualicen sus productos para que sean compatibles con la versión más reciente de PHP.

Por eso deberías usar un entorno de pruebas para verificar si la nueva versión rompe partes de tu sitio web. Esto es especialmente importante si actualmente estás ejecutando una versión anterior a la 8.0.

Te mostraremos cómo puedes hacer esto de manera segura usando las herramientas de SiteGround más adelante en el artículo.

Si gestionas un sitio web, es un buen momento para auditar tu código en busca de características obsoletas. Abordar estos cambios ahora puede ahorrarte dolores de cabeza cuando las futuras versiones de PHP las eliminen por completo.

Puedes solicitar una verificación de compatibilidad de PHP como parte de nuestros servicios de Expert Care, para que la revisión y actualización sean manejadas profesionalmente por nuestros técnicos.

2. Soporte de Versión

PHP 8.4 recibirá soporte activo durante dos años, seguido de dos años de actualizaciones críticas de seguridad. Puedes revisar la documentación oficial de PHP para las fechas exactas de corte.

Si estás usando una versión obsoleta de PHP, te recomendamos encarecidamente actualizar a la versión estable más reciente para mejorar la seguridad y el rendimiento.

¿Cómo actualizar a PHP 8.4?

Para la mayoría de los usuarios, recomendamos permanecer en PHP Gestionado para evitar complicaciones y romper tu sitio web en producción. Si tienes conocimientos técnicos y deseas probar cómo funciona tu sitio en 8.4, sigue leyendo para aprender cómo hacerlo de manera segura.

1. PHP Gestionado de SiteGround

Por defecto, todos los clientes de SiteGround están configurados en nuestro servicio de PHP Gestionado, lo que significa que actualizaremos automáticamente tu versión de PHP una vez que esté disponible una versión estable más reciente.

Esto se recomienda para la mayoría de los usuarios que no son expertos en tecnología, porque las versiones más recientes pueden introducir un conflicto en tu aplicación debido a la incompatibilidad de un plugin o tema.

Evaluamos cuidadosamente cada nuevo lanzamiento de PHP y realizamos pruebas de compatibilidad con las aplicaciones más utilizadas en nuestra plataforma.

A partir de febrero de 2025, la versión predeterminada de PHP Gestionado de SiteGround en nuestros servidores es 8.2.

Recomendamos esta versión como la última versión más ampliamente compatible. Antes de actualizar nuestra versión predeterminada de PHP, siempre nos aseguramos de tener suficientes datos de uso para garantizar la seguridad, estabilidad y rendimiento para la mayoría de los sitios web en nuestra plataforma.

Por eso permitimos un tiempo antes de cambiar nuestra versión predeterminada a cada nuevo lanzamiento, aunque estos últimos están disponibles para pruebas en nuestros servidores casi inmediatamente después de salir.

Los usuarios avanzados pueden cambiar manualmente a PHP 8.4 en cualquier momento a través de Site Tools.

2. Compatibilidad

Como mencionamos, todas las versiones más recientes de PHP pueden causar errores en tu sitio web, por lo que siempre se recomienda probar las versiones más recientes en un entorno de pruebas primero.

Ofrecemos una herramienta sin complicaciones y de un solo clic que te permite crear un clon de tu sitio de WordPress fácilmente, que puedes usar para verificar cualquier conflicto de plugin o tema antes de actualizar tu sitio web principal.

Una captura de pantalla de la página del panel de control de Site Tools de SiteGround, donde puedes crear una copia de Staging de tu sitio de WordPress.

Una vez que hayas creado una copia de prueba, sigue los pasos a continuación si deseas cambiarla a PHP 8.4 y probar cómo funciona en tu sitio.

3. Probar PHP 8.4.

La mayoría de los proveedores ofrecen una herramienta de gestión de PHP para cambiar entre diferentes versiones para tu sitio web. Para actualizar a 8.4 manualmente en SiteGround, ve a tu panel de Site Tools > Devs > Gestor PHP:

Una captura de pantalla del gestor PHP del panel de control de Site Tools de SiteGround, donde puedes cambiar la configuración de PHP de tus sitios.

Cambia a la pestaña Staging Sites:

Una captura de pantalla del gestor PHP del panel de control de Site Tools de SiteGround, donde puedes cambiar la configuración de PHP de un sitio de staging.

Haz clic en el botón Editar bajo Acciones, cambia de PHP Gestionado a Cambiar versión de PHP manualmente, y selecciona 8.4.3.

Una captura de pantalla del menú del panel de control de Site Tools de SiteGround, donde cambias la versión de PHP de un sitio web, con un desplegable mostrando las versiones disponibles que van desde la 8.0 hasta la 8.4.

¡Es así de simple! El siguiente paso es verificar si el sitio web funciona como se espera. Si alguna funcionalidad falla, necesitarías investigar más a fondo.

Quizás un plugin o el tema que estás usando no sea completamente compatible con la versión más reciente aún. O, podría haber algún código PHP personalizado en tu sitio que necesite ser renovado.

En tales casos, es mejor permanecer en nuestra versión de PHP Gestionado y esperar hasta que se resuelvan estos problemas, antes de actualizar tu sitio web principal a la última versión de PHP.

4. PHP Ultrafast

SiteGround tiene una reputación bien establecida por centrarse en la optimización del rendimiento. Por eso nuestro equipo ha desarrollado una versión personalizada de PHP que aumenta el rendimiento del sitio web hasta en un 30%.

Está disponible exclusivamente para nuestros usuarios en planes GrowBig (y superiores) y es totalmente compatible con PHP 8.4. Si deseas aprovecharlo, consulta nuestras soluciones de Hosting Gestionado y regístrate hoy para aumentar la velocidad de tu sitio web.

Un banner promocional que enumera las características únicas de hosting rápido de SiteGround.

PHP 8.4: Resumen y Próximos Pasos

PHP 8.4 es una mejora útil tanto para desarrolladores como para propietarios de sitios web. Con su sintaxis simplificada, APIs mejoradas y nuevas características, simplifica la codificación mientras mejora el rendimiento y la fiabilidad del sitio web.

Mantenerse al día con las versiones de PHP es esencial para mantener una presencia en línea rápida y confiable. Las actualizaciones deben manejarse con cuidado, para asegurar una transición suave y una experiencia sin problemas para tus visitantes.

Por eso es importante usar un proveedor de hosting que esté al día con las últimas tecnologías y ofrezca las herramientas necesarias para gestionar tu sitio web de manera segura.

En SiteGround, hacemos que la actualización sea sin complicaciones. Con nuestros servicios de PHP Gestionado y PHP Ultrafast, puedes disfrutar de un rendimiento máximo y actualizaciones sin problemas.

¿Listo para experimentar lo mejor que PHP 8.4 tiene para ofrecer? ¡Regístrate en nuestros planes de Hosting Gestionado hoy y prepara tu sitio web para el futuro!

Aleksandar Kolev

Escritor de contenido técnico

Aleksandar ha estado en SiteGround desde 2019, siempre esforzándose por aportar una mentalidad analítica aguda y un toque creativo a su trabajo. Como escritor de contenido técnico, se dedica a hacer que los temas complejos sean accesibles y atractivos. Fuera del trabajo, Aleksandar disfruta de una estilo de vida minimalista, centrado en la naturaleza y apasionado por la música y la actuación.. Su interés continuo en el yoga, el Tai-Chi y la meditación se suma a su enfoque equilibrado de la vida y el trabajo.

Iniciar discusión

Ha llegado el momento de practicar