jueves, 20 de mayo de 2021

PHP: Novedades de PHP 8.1


PHP 8.1 está previsto que llegue a finales de 2021, y aquí te traigo algunas de las novedades de está versión

Enums

Un Enum es un tipo de dato similar a una clase pero que representa un grupo de constantes, mejor dicho es una colección de constantes, a continuación un ejemplo de como se definiria un Enum:

enum Estado {
    case DRAFT;
    case PUBLICADO;
    case ARCHIVADO;
}

Esté Enum representa 3 estados de una entidad. También permiten asignar un valor a cada una de las constantes, por ejemplo, asignándole un valor numérico a cada estado, lo que puede resultar útil si necesitamos utilizarlo junto con una base de datos.

Never

El nuevo return type never se puede utilizar para indicar que una función cortará la ejecución del programa, es decir, que después de llamar a dicha función, el programa parará. A continuación un ejemplo simple, muy sencillo:

function stopExecution(): never {
    exit();
}

Fibers
Es el nombre que se le ha dado a los threads o hilos en PHP. Es un mecanismo para implementar alguna forma de paralelismo. Hasta ahora era posible utilizando generadores y el tipo de return 'yield', pero era muy limitado.

Por lo general, será bastante raro que necesitemos utilizar estos Fibers en nuestros desarrollos del día a día, pero, sin duda, habrá muchas librerías de bajo nivel de PHP que puedan hacer un uso extensivo de esta nueva funcionalidad.

array_is_list()

Nos devolverá un Boolean indicando si el array que le pasamos tiene las keys ordenadas, empezando por 0, y secuenciales.

array_is_list([1, 2, 3]); // TRUE
array_is_list([1 => 1, 2 => 2, 3 => 3]); // FALSE
array_is_list([0 => 1, 1 => 2, 2 => 'hello']); // TRUE
array_is_list(['a', 1 => 'b', 'c']); // TRUE