php8-clicko-informatica-programacion-web

Después de un largo período de incertidumbre, los desarrolladores del lenguaje han anunciado que el lanzamiento de una nueva versión estable de PHP tendrá lugar el 26 de noviembre de 2020. La nueva versión será la 8.

Esto coincide con el ciclo habitual de 3 años de PHP. Además, en diciembre del 2019 se publicó PHP 7.4 y PHP 7.1 fue suspendido. Aun así, muchas páginas y aplicaciones web escritas en PHP utilizan aún una versión antigua, que muy pronto dejará de ser compatible. Las nuevas versiones ofrecen más variedad, el rendimiento aumenta considerablemente y el nivel de seguridad es más alto. Es por este motivo, si eres desarrollador PHP, te invito a que revises y corras a actualizar tus aplicaciones si todavía mantienes alguna versión inferior a la 7.1.

Versión estable

Esta nueva versión es versión principal, lo que significa que introducirá algunos cambios importantes, así como muchas características nuevas y mejoras de rendimiento.

Debido a estos cambios importantes, existe una gran probabilidad de que necesites realizar algunos cambios en tu código en el caso de querer realizar una migración a PHP8 y todo ejecute correctamente.

 

Nuevas características

Comencemos con alguna de las nuevas funciones.

Compilador JIT

La mayor novedad será el compilador JIT, que mejorará considerablemente el rendimiento. PHP no se compila, sino que se interpreta línea por línea. El compilador JIT (Just in Time) compilaría parte del código durante el tiempo de ejecución, por lo que funcionaría de manera muy similar a una versión en caché del código. Con ello, el rendimiento debería mejorar considerablemente.

El compilador JIT proporciona una mejora del rendimiento de más del 45 %.

 

Tipos de unión

Los union types también aparecen en otros lenguajes como C/C++, TypeScript o Haskell. Permiten crear uniones de dos o más tipos de datos, pudiéndose utilizar cualquiera de ellos. En el código, esto se vería de la siguiente manera:

public function foo(Foo|Bar $input): int|float;

Sin embargo, existe una limitación. Void no puede formar parte de un union type, ya que no devuelve ningún valor. Además, las uniones nullable pueden escribirse con |null o ?, como te mostramos en este ejemplo:

public function foo(Foo|null $foo): void;
public function bar(?Bar $bar): void;

 

Expresión Match

Podríamos llamarlo el hermano mayor de la expresión switch. En este caso la expresión devuelve un valor, no requiere de las directivas break, utiliza comparaciones de tipo estrictas (===) y permite realizar varias comparaciones en una misma instrucción.

$result = match($input) {
0 => "hello",
'1', '2', '3' => "world",
default => “Bye”
};

Nos permite tener un código más legible y limpio que la expresión switch.

 

::class en los objetos

En versiones anteriores se tenía que usar get_class() para asignar una clase a los objetos. Ahora se puede aplicar ::class directamente a los objetos y a las instancias de estos. Esto ayuda a mantener el código más limpio.

$foo = new Foo();

var_dump($foo::class);

 

Expresión Throw

Esta característica hace que trhow pase de ser una declaración a una expresión, permitiéndonos utilizarla en nuevas situaciones que nos ahorran líneas de código.

$triggerError = fn () => throw new MyError();

$foo = $bar['offset'] ?? throw new OffsetDoesNotExist('offset');

 

Named arguments

Los argumentos con nombre nos permiten pasar valores a una función o constructor especificando el nombre del valor, de este modo no tendremos que tener en cuenta el orden de los parámetros y nos permite omitir parámetros opcionales.

function foo(string $a, string $b, ?string $c = null, ?string $d = null)
{ /* … */ }

foo(
   b: 'value b',
   a: 'value a',
   d: 'value d',
);

 

Estas características de PHP 8 están ya confirmadas, pero son solo algunas de las más relevantes y que nos proporcionarán más facilidad a la hora de realizar algunas operaciones. Aun así, se esperan más novedades durante los meses posteriores a su lanzamiento.

Para ver el listado actualizado de nuevas características de la versión puedes visitar el sitio oficial: https://wiki.php.net/rfc#php_80

Desde CLiCKO ya estamos preparando nuestros entornos para poder empezar a utilizar esta nueva versión en nuestros nuevos desarrollos, y porqué no, incluso migrar algunas de nuestras aplicaciones actuales.

 

Twitter
Visit Us
Follow Me
LinkedIn
Share