PHP 8 – Ya disponible en okITup

PHP 8 ya está disponible en todos los servidores de okITup.
Para implementarlo en los sitios web es muy sencillo.

Accedemos al panel del servidor y posteriormente a Sitios. Creamos un sitio web o entramos en el que deseemos implementar dicha versión de PHP y abrimos el desplegable de Versión de PHP.

Seleccionamos la versión 8.0 y guardamos cambios.

Comparativa rendimiento PHP 8

Como podemos observar hay una notable mejora en cuánto al benchmark (cuánto más mejor) de la versión 8 respecto a su sucesoras 7.0-7.4 y una gran diferencia con la 5.6.

Mencionar que, combinando PHP 8 con JIT (explicado más adelante) conseguimos el mejor rendimiento posible dentro de PHP.

A parte de nuevo logo, PHP 8 trae consigo muchas novedades.

La característica más destacada es que PHP 8 viene con el compilador Just-in-time (JIT).

¿Qué es el compilador JIT?

PHP JIT está implementado como una parte casi independiente de OPcache. Puede ser activado/desactivado en tiempo de compilación de PHP y en tiempo de ejecución. Cuando se habilita, el código nativo de los archivos PHP se almacena en una región adicional de la memoria compartida de OPcache y los manejadores op_array→opcodes[]. mantienen punteros a los puntos de entrada del código JIT.”

¿Qué conseguimos con dicho compilador?

Para las aplicaciones web, como WordPress, el código no sería ejecutado por el VM de Zend, sino por la propia CPU, y esto mejoraría la velocidad de cálculo. Cabe recordar de que para mejorar dicha velocidad también entran en juego otros factores como TTFB, optimización de bases de datos, peticiones HTTP, etc. que ya tratamos aquí en okITup.

Por defecto, este componente de PHP vendrá desactivado, para ver cómo habilitarlo y configurarlo, haz click aquí.

Para ver cómo modificar dichos valores de PHP en php.ini desde el panel de okITup, haz click aquí.

Características técnicas

Tipos de unión o Union Types

Nos permite crear uniones de dos o más tipos de datos, pudiéndose utilizar cualquiera de ellos. Por ejemplo:

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

Match expression

PHP 8 incorpora una nueva extensión parecida a switch pero diferenciándose en:
– Más segura: los valores se comparan estrictamente (≡), en lugar de la igualdad (==).
– Devuelve valores: a diferencia de las expresiones switch, estas expresiones Match si devuelve valores.

Atributos o Attributes

En esta versión ya es posible añadir atributos (anotaciones) sin tener que usar bloques de comentarios con la inserción de << y >>.
Por ejemplo:

<<Anotación que deseemos>>
public function __construct(string $value)
{
$this->value = $value;
}

Weak Maps

Es una extensión de WeakRefs, que ya aparecía en PHP 7.4. Dicha función nos ofrece una administración de los objetos que ahorra recursos.

Constructor Property Promotion

Nos permite simplificar el código que escribimos por versiones más cortas. Por tanto, conseguimos un código mucho más limpio, legible y simple.
Por ejemplo, de este código:

por este otro:

Uso de ::class en los objetos

Otra forma de sintetizar el código es aplicando directamente ::class a los objetos en lugar de get_class(), como hasta ahora.

Stringable interface o interfaz para cadenas

Otra de las mejoras de PHP 8 es la implementación automática de Stringable interface a las clases que implementan el método __toString(), sin necesidad de hacerlo a mano.

Type errors o errores de tipo

Hasta PHP 8, solo las funciones definidas por el usuario arrojaban los TypeErrors, las funciones internas emitían advertencias y devolvían el valor null. Ahora, el comportamiento de estas funciones.

Named arguments o argumentos de nombre

Los Named arguments permiten pasar datos de entrada a una función con el nombre del parámetro, en vez de hacerlo con su posición.

 

Si necesitas ayuda o más información, no dudes en ponerte en contacto con nosotros, estaremos encantados de poder ayudarte.