php-logo

Echemos un vistazo rápido a algunas de las increíbles funciones de esta nueva versión.

PHP 8.1 ha sido lanzado oficialmente y trae numerosas innovaciones, como enumeraciones, fibras y mejoras de rendimiento.

PHP es un lenguaje de programación del lado del servidor que se utiliza para desarrollar aplicaciones web. Según los datos de W3Techs , el 78,2% de todos los sitios web utilizan PHP con un lenguaje de programación del lado del servidor conocido. En otras palabras, casi 8 de cada 10 sitios web que visita en Internet utilizan PHP de alguna manera.

El lenguaje continúa evolucionando, con el lanzamiento de su última actualización de PHP 8.1 , solo un par de días después de que se anunció la formación de una Fundación PHP . Esta nueva versión , lanzada el 25 de noviembre de 2021, contiene muchas características nuevas, que incluyen enumeraciones, propiedades de solo lectura, sintaxis invocable de primera clase, fibras, tipos de intersección, mejoras de rendimiento y más.

Echemos un vistazo rápido a algunas de las nuevas funciones, ajustes de rendimiento y otras razones por las que debería migrar a PHP 8.1.

Aspectos destacados de PHP 8.1

Con cada nueva versión de PHP, normalmente podemos esperar un pequeño aumento de rendimiento, y esta parece no ser una excepción. Esta nueva versión también proporciona capacidades que ayudan a los desarrolladores a escribir código más conciso.

Enums (enumeraciones)

PHP 8.1 introduce un nuevo tipo de datos llamado Enums . Es básicamente un conjunto de valores predefinidos declarados en una entidad. Las enumeraciones son una herramienta importante en el modelado de aplicaciones, ya que le permite definir su propio micro universo de estados permitidos.

Ahora probablemente haya usado Enums de una forma u otra en su código, pero ahora PHP 8.1 admitirá enumeraciones de forma nativa. Y esta es una gran noticia para todos. En su forma más básica, las enumeraciones se parecen a esto:

enum Animal {
case Dogs;
case Cats;
case Birds;
case Reptiles;
}

Al igual que en otros lenguajes, este es un tipo de enumeración que permite valores predefinidos. El ejemplo anterior crea un nuevo tipo de enumeración llamada Animal, que toma los cuatro valores siguientes: Animal::Dogs, Animal::Cats, Animal::Birdsy Animal::Reptiles. Se pueden asignar variables a estos valores. La ventaja de Enums es que representan una colección de valores constantes, pero lo más importante es que estos valores se pueden escribir.

Fibras

Hasta ahora, PHP solo estaba destinado a escribir código síncrono. PHP 8.1 incluye una nueva y emocionante característica para escribir código asincrónico integrado directamente en el lenguaje, Fibers .

La introducción de Fibras tiene como objetivo eliminar la distinción entre funciones asíncronas y síncronas.

Puede usar Fibers para desarrollar funciones PHP interrumpibles de pila completa, que luego puede usar para implementar la multitarea cooperativa en PHP.

Las fibras pausan toda la pila de llamadas, por lo que el llamador directo de la función no necesita cambiar la forma en que invoca la función. La ejecución puede interrumpirse en cualquier parte de la pila de llamadas utilizando Fiber::suspend().

$fiber = new Fiber(function (): void {
$value = Fiber::suspend('fiber');
echo "Value used to resume fiber: ", $value, "\n";
});

$value = $fiber->start();

echo "Value from fiber suspending: ", $value, "\n";

$fiber->resume('test');

Producción

Value from fiber suspending: fiber
Value used to resume fiber: test
Llamables de primera clase
Las llamadas de primera clase son una nueva forma de hacer referencia a cierres y funciones. Si bien anteriormente ya podía hacer referencia a ellos usando su nombre como una cadena o creando una matriz invocable, ahora existe esta sintaxis adecuada para crear una invocable desde cualquier función dada, de modo que pueda llamarla más tarde.

$fn = Closure::fromCallable('strlen');
$fn = strlen(...);

$fn = Closure::fromCallable([$this, 'method']);
$fn = $this->method(...)

$fn = Closure::fromCallable([Foo::class, 'method']);
$fn = Foo::method(...);

En este ejemplo, cada par de expresiones es equivalente. La strlen(...)sintaxis crea una Closureque se refiere a la strlen()función, y así sucesivamente.

Otras mejoras en PHP 8.1

La matriz y el empaquetado ahora admiten claves de cadena, así como también se pueden crear constantes de clase finalpara que las clases secundarias no puedan sobrescribirlas. Además, hay una nueva array_is_list()función que determina si una matriz solo tiene teclas numéricas que comienzan en 0 y se incrementan en 1, pero si es una lista real.

PHP 8.1 introduce una nueva forma de escribir enteros octales y ahora también tenemos tipos Pure Intersection. Esto es lo opuesto a los tipos de unión, que permite cualquiera de los tipos declarados. Los tipos de intersección pura son útiles si a menudo usa interfaces en su código.

Finalmente está el nevertipo. Es un tipo de retorno que indica que una función nunca regresará. Eso significa que saldrá o siempre lanzará una excepción.

function redirect(string $url): never {
header('Location: ' . $url);
exit();
}

El objetivo del never tipo de retorno es indicar y hacer cumplir una función que evita que se ejecute el resto del código llamado.

Por último, pero no menos importante, es importante mencionar que el procesamiento de imágenes PHP 8.1 y la extensión GD agregan soporte para imágenes AVIF. Una imagen AVIF ofrece una reducción significativa del tamaño de archivo en comparación con JPEG, PNG y WebP y actualmente es compatible con Google Chrome y Mozilla Firefox .

Mejoras de rendimiento de PHP 8.1

Cada versión de PHP continúa mejorando en el departamento de rendimiento y PHP 8.1 realiza grandes mejoras de rendimiento para aplicaciones de la vida real.

De hecho, la aplicación de demostración de Symfony en PHP 8.1 es ~ 23% más rápida que en PHP 7.4, mientras que Laravel se ejecuta ~ 21.5% más rápido en PHP 8.1 que en PHP 7.4. Este es el resultado de dos nuevas tecnologías implementadas en PHP 8.1 y también una gran cantidad de pequeñas correcciones y ajustes de rendimiento. Entonces, definitivamente, es bueno ver cómo el rendimiento de PHP sigue mejorando con cada nueva actualización.

 

Fuente: linuxiac | somoslibres

¿Quién está en línea?

Hay 40123 invitados y ningún miembro en línea