PHP 8.3

PHP 8.3 ya disponible en dinahosting. ¡Conoce sus novedades!

|

Tiempo de lectura: 3 minutos

Actualizado el martes, 20 febrero, 2024

En dinahosting ya dispones de PHP 8.3 en todos nuestros hostings. Aquí te dejamos un pequeño resumen con todo lo que incluye esta nueva versión.

PHP 8.3

Las nuevas versiones de PHP introducen mejoras en el rendimiento, nuevas características, correcciones de errores y, a veces, cambios en la sintaxis o funcionalidades existentes.

  1. Mejoras en el rendimiento: cada nueva versión tiende a incluir optimizaciones para hacer que PHP sea más rápido y eficiente.
  2. Nuevas características: se agregan nuevas funciones y constructores de lenguaje para mejorar la productividad de los desarrolladores y permitirles escribir código más limpio y eficiente.
  3. Compatibilidad: se realizan ajustes para mejorar la compatibilidad con tecnologías emergentes o para abordar problemas de interoperabilidad con otras bibliotecas y frameworks.
  4. Correcciones de errores: las actualizaciones suelen abordar problemas conocidos y corregir errores de versiones anteriores, para garantizar un funcionamiento más estable y seguro.
  5. Seguridad: se introducen mejoras de seguridad para abordar vulnerabilidades conocidas y fortalecer la seguridad del lenguaje.

Ahora sí, veamos en detalle algunas de las características de la actualización.

Constantes de Clase Tipificadas

Las Constantes de Clase Tipificadas representan una adición significativa en PHP 8.3, introduciendo una capa adicional de claridad y seguridad en el código. Ahora, los desarrolladores pueden especificar el tipo de datos que una constante de clase debe contener, lo que proporciona beneficios tanto en términos de documentación como de detección temprana de posibles errores.

interface I {
    const string PHP = 'PHP 8.3';
}

class Foo implements I {
    const string PHP = [];
}

// Fatal error: Cannot use array as value for class constant
// Foo::PHP of type string

Esta característica no solo mejora la legibilidad del código, sino que también fortalece la integridad del sistema, al garantizar que las constantes de clase se utilicen de acuerdo con las expectativas del desarrollador.

El Clean Code no solo es una buena práctica, sino un componente esencial para construir aplicaciones robustas y sostenibles.

Nuevo atributo #[\Override]

Mediante el atributo #[\Override] en PHP 8.3, se asegura la existencia de un método con el mismo nombre en una clase padre o interfaz implementada. Este atributo no solo clarifica la intención de sobrescritura, sino que también simplifica la refactorización, al detectar cualquier eliminación inadvertida de un método padre sobreescrito, promoviendo así la detección temprana de errores y mejorando la integridad del código.

use PHPUnit\Framework\TestCase;

final class MyTest extends TestCase {
    protected $logFile;

    protected function setUp(): void {
        $this->logFile = fopen('/tmp/logfile', 'w');
    }

    #[\Override]
    protected function taerDown(): void {
        fclose($this->logFile);
        unlink('/tmp/logfile');
    }

Clonación profunda de propiedades de solo lectura

La clonación profunda de propiedades de solo lectura permite la replicación de objetos con propiedades de solo lectura de manera completa, asegurando una copia fiel de la estructura de datos. Esto simplifica la manipulación de objetos inmutables, ya que la clonación profunda garantiza que las propiedades de solo lectura se conserven de forma coherente, facilitando el trabajo con estructuras complejas y preservando la integridad de los datos durante el proceso de clonación.

class PHP {
    public string $version = '8.2';
}

readonly class Foo {
    public function __construct(
        public PHP $php
    ) {}

    public function __clone(): void {
        $this->php = clone $this->php;
    }
}

$instance = new Foo(new PHP());
$cloned = clone $instance;

$cloned->php->version = '8.3';

Nueva función json_validate()

Esta característica facilita la gestión de datos estructurados, al proporcionar una forma eficiente de validar la integridad de las cadenas JSON antes de su procesamiento.

var_dump(json_validate('{ "test": { "foo": "bar" } }')); // true

json_validate() permite verificar si una cadena es JSON sintácticamente válido, siendo más eficiente que json_decode().

Nuevo método Randomizer::getBytesFromString()

El método mencionado proporciona a los desarrolladores una herramienta eficaz para la generación sencilla de identificadores aleatorios, como nombres de dominio y cadenas numéricas de longitud variable.

// A \Random\Engine may be passed for seeding,
// the default is the secure engine.
$randomizer = new \Random\Randomizer();

$randomDomain = sprintf(
    "%s.example.com",
    $randomizer->getBytesFromString(
        'abcdefghijklmnopqrstuvwxyz0123456789',
        16,
    ),
);

echo $randomDomain;

Además, en esta actualización se han incorporado nuevos métodos, como Randomizer::getFloat() y Randomizer::nextFloat(), enriqueciendo las capacidades de generación de números aleatorios en PHP 8.3.

El linter de línea de comandos admite múltiples archivos

La versión más reciente del linter de línea de comandos en PHP ofrece soporte para la verificación de múltiples archivos de manera simultánea. Esta mejora permite a los desarrolladores analizar y validar la sintaxis de varios archivos en una sola ejecución.

php -l foo.php bar.php
No syntax errors detected in foo.php
No syntax errors detected in bar.php

Junto con las notables mejoras mencionadas, PHP 8.3 presenta una expansión sustancial en su conjunto de herramientas, incorporando nuevas clases, interfaces y funciones que enriquecen la capacidad de los desarrolladores para abordar una variedad de escenarios de programación.

Esta actualización no solo se centra en la introducción de características novedosas, sino que también dedica atención a la corrección de errores y bugs previamente identificados, asegurando así una experiencia de desarrollo más robusta y fiable.

El compromiso continuo con la estabilidad y la resolución proactiva de problemas subraya el enfoque integral de PHP 8.3 para brindar a los desarrolladores un entorno de programación avanzado y eficiente. Puedes leer más documentación sobre ello en su página oficial.

En resumen, PHP 8.3 no solo introduce nuevas funcionalidades que enriquecen la capacidad del lenguaje, sino que también trabaja en la optimización y perfeccionamiento de su rendimiento, consolidando su posición como una herramienta poderosa y versátil para los desarrolladores web.


Avatar de Edi Vieito

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Newsletter

Suscríbete y recibe periódicamente consejos muy útiles para tu web y ecommerce 🙂 Además, te regalamos
3 guías
: Digitalización, WordPress y Ciberseguridad.

Conviértete en afiliado

Gana dinero recomendando dinahosting a todo el mundo.