¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí

Las novedades de PHP 8

Una pizca de asincronía: las fibras en PHP 8

Una nueva característica se ha introducido en PHP a partir de la versión PHP 8.1. Se llama fibras (fibers en inglés).

¿De qué se trata?

Hasta ahora, nuestro código PHP se ejecuta de manera secuencial. Es decir, las instrucciones se procesan una tras otra, siguiendo el orden impuesto por las estructuras de control y las llamadas a funciones.

Pero puede ser interesante tener varios códigos PHP que se ejecuten de manera simultánea. Esto es posible, pero ¿para qué sirve?

Imagine que su programa PHP llama a otro programa que está en otro servidor. En lugar de volver a escribir programas que ofrecen el mismo servicio que otros disponibles en servidores externos, ¿por qué no llamar directamente a estos programas? Esto ocurre con frecuencia. Llamamos a estos programas servicios. Hablamos entonces de programación de servicios o, mejor aún, de arquitectura = de servicios.

No se preocupe, no es complicado.

Tomemos un ejemplo: un programa que necesita conocer las temperaturas meteorológicas de cada ciudad de España en una fecha específica para procesarlas posteriormente, quizás para proporcionar un historial. En lugar de crear el código que busca estas temperaturas una por una, su programa llamará a un servicio meteorológico externo, es decir, un programa externo cuya función es precisamente devolver la lista de temperaturas solicitada.

Puede encontrar este tipo de servicio si busca en Google los términos:

Api meteorológica ciudad España

Estos servicios también se llaman API, que significa Application Programming Interface (interfaz de programación de aplicaciones), es decir, interfaces de programación que permiten conectar un software con otro.

Por supuesto, no queremos obtener directamente los datos de resultados de estas API escribiendo la dirección en el navegador. Tendremos que pasar por un programa PHP que, mediante una instrucción, llamará directamente al servicio. Varias instrucciones de PHP permiten llamar a un programa externo. Por ejemplo, la instrucción file_get_contents permite hacerlo.

Le sugiero que, para obtener más información, consulte el enlace: https://www.php.net/manual/es/function.file-get-contents.php

Encontrará, al final...

Otras novedades interesantes de PHP 8

Aparte de las fibras, he aquí algunas de las mejoras principales que se pueden destacar en PHP 8.1.

1. Los argumentos pueden tener nombre

En las versiones antiguas de PHP, la transmisión de valores de los parámetros (también llamados argumentos) se realizaba siguiendo el orden de definición en la declaración de la función. Esto presenta la desventaja de tener que proporcionar obligatoriamente un valor para cada argumento, incluso si son opcionales. En PHP 8, puede pasar estos valores utilizando los nombres de los argumentos.

Por ejemplo:

function miFuncion($a, $b, $c = 3, $d = 4) {   
 return $a + $b + $c + $d;   
}   
echo miFuncion(a : 10, b : 15, d : 40);  // resultado: 68  

Aquí hemos omitido transmitir el valor del argumento $c, que por defecto es 3.

2. Número de argumentos variable

PHP también admite argumentos de longitud variable en funciones definidas por el usuario utilizando el token ....

Los argumentos se pasan como un array indexado o asociativo:

function miFuncion($a, $b, $c = 3, $d = 4) {   
  return $a + $b + $c + $d;   
}   
  
echo miFuncion(...[10,20, 'd' => 40]); // resultado: 73 

Los valores de $a y $b se transmiten por indexación del array ($a=10 y $b=20); el valor de $c es «3» por defecto, y el valor de $d se transmite por la clave asociativa ‘d’.

También es posible utilizar este token en la declaración de la función:

function miFuncion2(...$numeros) {   
  $suma=0;   
  foreach($numeros...