PHP 8.3
— php, php8.3, seguridad, actualizacion, rendimiento — 3 minutos de lectura
PHP 8.3, trae consigo una serie de nuevas características que mejoran la expresividad, la seguridad y el rendimiento del lenguaje.
Echemos un vistazo a las más destacadas:
Constantes de clase tipificadas
Ahora podemos declarar el tipo de dato de las constantes de clase, mejorando la legibilidad y evitando errores.
1class Persona {2 public const NOMBRE = "Juan Pérez"; // string3 public const EDAD = 30; // int4}5
6echo Persona::NOMBRE . " tiene " . Persona::EDAD . " años.";Búsqueda dinámica de constantes de clase y miembros de enumeraciones
Permite acceder a constantes de clase y miembros de enumeraciones de forma dinámica, lo que facilita el desarrollo de código flexible y adaptable.
1enum EstadoCivil {2 SOLTERO,3 CASADO,4 VIUDO5}6
7$estado = EstadoCivil::CASADO;8
9echo "El estado civil es " . $estado->name . " (" . $estado->value . ").";10
11$nombreEstado = EstadoCivil::tryFrom(2);12
13echo "El estado con el valor 2 es " . $nombreEstado->name . ".";Nuevo atributo #[Override]
Se utiliza para indicar explícitamente cuando un método está redefiniendo un método de una clase padre, mejorando la seguridad y evitando errores accidentales.
1class Animal {2 public function saludar() {3 echo "Hola!";4 }5}6
7class Perro extends Animal {8 #[Override]9 public function saludar() {10 echo "Guau!";11 }12}13
14$perro = new Perro();15$perro->saludar(); // Imprime "Guau!"Clonación profunda de propiedades de solo lectura
La clonación ahora copia correctamente los valores de las propiedades de solo lectura, lo que era inconsistente en versiones anteriores.
1class Persona {2 private readonly string $nombre;3
4 public function __construct(string $nombre) {5 $this->nombre = $nombre;6 }7
8 public function __clone() {9 // La propiedad $nombre se clona correctamente10 }11}12
13$persona1 = new Persona("Juan Pérez");14$persona2 = clone $persona1;15
16echo "Persona 1: " . $persona1->nombre . "\n";17echo "Persona 2: " . $persona2->nombre . "\n";18
19$persona2->nombre = "María García";20
21echo "Persona 1: " . $persona1->nombre . "\n";22echo "Persona 2: " . $persona2->nombre . "\n";Nueva función json_validate()
Permite validar una cadena JSON contra un esquema JSON, simplificando la gestión de datos JSON.
1$json = '{2 "nombre": "Juan Pérez",3 "edad": 304}';5
6$esquema = '{7 "type": "object",8 "properties": {9 "nombre": { "type": "string" },10 "edad": { "type": "integer" }11 }12}';13
14if (json_validate($json, $esquema)) {15 echo "El JSON es válido.";16} else {17 echo "El JSON no es válido.";18}Nuevo método Randomizer::getBytesFromString()
Genera una secuencia de bytes a partir de una cadena, útil para la criptografía y otras tareas.
1$bytes = Randomizer::getBytesFromString("Hola mundo!");2
3echo bin2hex($bytes); // Imprime una cadena hexadecimal que representa los bytesMejoras en el rendimiento
PHP 8.3 incluye varias optimizaciones que mejoran el rendimiento general del código.
Deprecaciones y cambios en el comportamiento
Algunas funciones y características han sido desaprobadas o han cambiado su comportamiento. Es importante revisar la documentación para actualizar el código.
En resumen, PHP 8.3 es una actualización importante que ofrece nuevas funcionalidades, mejoras en el rendimiento y mayor seguridad.
Te recomiendo actualizar tu proyecto a PHP 8.3 para aprovechar todas estas ventajas.
¡Espero que esta información te haya sido útil!
¡Hasta la próxima!