PHP 8.1

Nuevo PHP 8.1 ya en dinahosting

|

Tiempo de lectura: 3 minutos

Actualizado el jueves, 17 noviembre, 2022

PHP 8.1 acaba de salir y por supuesto, ya puedes disfrutarlo en dinahosting. Te adelantamos las principales novedades de esta nueva versión

Como sabes, en dinahosting ponemos a tu disposición todos los recursos para que disfrutes de los mejores planes de hosting seguro apostando siempre por la última tecnología y el mejor servicio, para que puedas crear tu tienda online. Es por eso que hemos incorporado la nueva versión de PHP para que seas el primero en disfrutarla. ¡Te contamos sus novedades!

Mejoras del nuevo PHP 8.1

Enumeraciones

Al igual que otros lenguajes, ahora PHP también soporta enumeraciones o Enums. Estas permiten definir tipos personalizados y limitarlos a uno o a un número discreto de valores posibles. Muy útil para por ejemplo, para definir un modelo de dominio y hacer que sean irrepresentables los estados no válidos.

Ejemplo de como funcionarían las enumeraciones:

enum Status {
    case Borrador;
    case Publicado;
    case Archivado;
}
function acceptStatus(Status $status) {...}

Usando el enum creamos una enumeración con estados o casos que definen la entidad que queramos. El enum se puede utilizar como tipo de dato para llamar a una función, generar una función propia o para asignar variables o valores numéricos a cada caso.

Propiedades Readonly

Se introduce un nuevo modificador de la propiedad readonly que evita la modificación de la propiedad después de la inicialización.

Estas propiedades Readonly solamente pueden ser iniciadas una vez.

class Test {
    public readonly string $prop;
 
    public function __construct(string $prop) {
        // Legal initialization.
        $this->prop = $prop;
    }
}

Fibers

Con los fibers o hilos se busca eliminar la distinción entre funciones síncronas y asíncronas al permitir que las funciones sean interrumpibles sin contaminar toda la pila de llamadas. Es decir, los fibers permiten a PHP la programación de forma asíncrona sin tirar de soluciones de terceros.

Ejemplo de uso de los fibers:

$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');

Tipos de Intersecciones

Mediante los tipos de intersección puedes satisfacer múltiples restricciones al mismo tiempo.

Ejemplo:

class Test {
    private ?Traversable $traversable = null;
    private ?Countable $countable = null;
    /** @var Traversable&Countable */
    private $both = null;
 
    public function __construct($countableIterator) {
        $this->traversable =& $this->both;
        $this->countable =& $this->both;
        $this->both = $countableIterator;
    }
}

Never

Never es el nuevo return type que se puede utilizar para determinar que una función parará la ejecución del programa.

El ejemplo más común es cuando ejecutamos un exit() de forma no condicional en una función:

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

Nuevas funciones fsync y fdatasync

Con fsync podrás sincronizar los cambios con el archivo, incluso los metadatos. Es muy similar a fflush() pero asegura además que el sistema operativo escriba en el almacenamiento.

Utilizando fdatasync también puedes sincronizar datos pero no metadatos. Esta llamada agiliza el proceso de escritura para datos que no tengan metadatos esenciales.

Función array_is_list

Determina si un array o matriz es efectivamente una lista. Con esta función se comprueba si están ordenadas secuencialmente empleando por 0 y sin espacios las claves de un array.

Ejemplo de uso:

<?php

array_is_list([]); // true
array_is_list(['apple', 2, 3]); // true
array_is_list([0 => 'apple', 'orange']); // true

// The array does not start at 0
array_is_list([1 => 'apple', 'orange']); // false

// The keys are not in the correct order
array_is_list([1 => 'apple', 0 => 'orange']); // false

// Non-integer keys
array_is_list([0 => 'apple', 'foo' => 'bar']); // false

// Non-consecutive keys
array_is_list([0 => 'apple', 2 => 'bar']); // false
?>

Esta función es perfecta comprobar las listas y evitar errores.

¡Y mucho más! Si quieres conocer todas las mejoras y novedades de PHP 8.1 échale un vistazo a la documentación oficial.

Actualiza ahora tu versión de PHP

Si quieres ser el primero en probar PHP 8.1 actualiza ya mismo la versión:

  • En hostings con PHP-FPM

Solo tienes que entrar en tu Panel de Control, al apartado Hosting > Servidor > PHP > Versión PHP. Ahí eliges PHP 8.1 o la versión que prefieras, y listo.

  • En hostings sin PHP-FPM

En este caso tienes que migrarlo de servidor, a una imagen que sí lo tenga. Aquí te contamos al detalle cómo hacer esta migración.

¿Has probado PHP 8.1? ¿Qué te parece esta nueva versión? Cuéntanoslo en los comentarios. Y si quieres estás pensando en dar de al 🙂


Avatar de Marta Mariño

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Newsletter

Suscríbete y recibe periódicamente consejos muy útiles para tu web y ecommerce 🙂 Además, te regalamos
3 guías
: Digitalización, WordPress y Ciberseguridad.

Conviértete en afiliado

Gana dinero recomendando dinahosting a todo el mundo.