Todos los artículos

Transmisión anónima de eventos en Laravel 11.5

Julian Beaujardin
Julian Beaujardin April 24th, 2024

Esta semana, el equipo de Laravel lanzó la versión 11.5, con transmisión anónima de eventos, mejoras en el rendimiento de Blade, generación de URL con parámetros de consulta y más.

Transmisión anónima de eventos

Joe Dixon contribuyó con transmisiones anónimas en Laravel para aplicaciones en tiempo real usando Laravel Echo:

A veces es posible que desees transmitir un evento ad hoc. Un evento ad-hoc es aquel en el que no es necesario conectarse a él en ningún otro lugar de su aplicación. Solo desea notificar algo a la interfaz. Para esto, no querrás tomarte la molestia de crear un evento nuevo, solo querrás enviar un mensaje. Para ello podemos utilizar una transmisión anónima usando la fachada Broadcast, que puede ser tan simple como:

Broadcast::on('my-channel')->send();

// You may dispatch to multiple channels at the same time:
Broadcast::on([
    'my-channel',
    new PrivateChannel('my-channel'),
    'presence-my-channel'
)->send();

// Broadcast the anonymous event on a private or presence channel
Broadcast::private('my-channel')->send();
Broadcast::presence('my-channel')->send();

Para obtener más información sobre la transmisión anónima de eventos en Laravel, consulte la Documentación de Laravel.

Mejoras en el rendimiento de los blades

Taylor Otwell compartió una idea sobre cómo potenciar el rendimiento de renderizado de los componentes Blade. Se aceptaron y fusionaron dos solicitudes de extracción como parte de Laravel 11.5, que en conjunto mejoraron Blade renderizado en un 20%:

Capacidad para generar URL con parámetros de consulta

Steve Bauman contribuyó con la capacidad de generar URL con parámetros de consulta a través del nuevo método query():

// http://localhost/products?sort=-name
url()->query('products', ['sort' => '-name']);

// http://localhost/products?columns[0]=name&columns[1]=price&columns[2]=quantity
url()->query('products', ['columns' => ['name', 'price', 'quantity']]);

// Overiding parameters:
// http://localhost/products?sort=-price
url()->query('products?sort=-name', ['sort' => '-price']);

// Appending parameters
// http://localhost/products?sort=-name&search=samsung
url()->query('products?sort=-name', ['search' => 'samsung']);

Agregue un espacio de nombres predeterminado para make:trait y make:interface

@milwad-dev contribuyó con un espacio de nombres predeterminado para make:trait y make:interface, que creará estas clases en las siguientes rutas, si existen:

  • Interfaces:
    • App\Contracts
    • App\Interfaces
  • Traits:
    • App\Concerns
    • App\Traits

Si alguna de esas carpetas existe en su proyecto, Laravel creará el archivo en ese espacio de nombres. Por ejemplo, App\Contracts tendría prioridad sobre App\Interfaces. Por último, el archivo se crea directamente en el espacio de nombres de la aplicación si no se encuentra alguno de los directorios.

Notas de la Versión

Puede ver la lista completa de nuevas funciones y actualizaciones a continuación y la diferencia entre 11.4.0 y 11.5.0 en GitHub. Las siguientes notas de la versión provienen directamente del registro de cambios