notiziephp.it

Broadcasting con Mercure in Laravel 13.32

Traduzione da Laravel News
18 Settembre 2026 Tempo di lettura: 4 minuti
Broadcasting con Mercure in Laravel 13.32

Il team di Laravel ha rilasciato la v13.32.0 con un nuovo driver di broadcasting Mercure, i metodi copyToDisk() e moveToDisk() sul filesystem, il supporto agli enum nella pausa e ripresa delle queue e altro ancora:

Driver di Broadcasting Mercure

Kévin Dunglas ha contribuito con un driver di broadcasting per Mercure, un protocollo real-time che funziona su SSE invece che su WebSockets:

// config/broadcasting.php
'mercure' => [
'driver' => 'mercure',
'url' => env('MERCURE_URL'),
'public_url' => env('MERCURE_PUBLIC_URL'),
'secret' => env('MERCURE_JWT_SECRET'),
'encryption_key' => env('MERCURE_ENCRYPTION_KEY'),
],

Con FrankenPHP, l'hub integrato non necessita di url o secret. Il driver supporta anche i presence channel e i canali private-encrypted-* con crittografia end-to-end. Una patch di Echo complementare aggiunge il supporto lato client.

Per maggiori dettagli, consulta la #61474 e il supporto dell'installer di broadcasting nella #61587.

Storage copyToDisk() e moveToDisk()

Jack Bayliss ha contribuito con copyToDisk() e moveToDisk() a FilesystemAdapter, sostituendo il pattern manuale di lettura e scrittura degli stream per spostare i file tra i dischi:

// Copia sul disco di backup, mantenendo il file sul disco locale
Storage::disk('local')->copyToDisk('backup', 'reports/report.csv');

// Copia sul disco di backup, eliminando il file dal disco locale
Storage::disk('local')->moveToDisk('backup', 'reports/report.csv');

// Specifica un percorso di destinazione diverso
Storage::disk('local')->copyToDisk('s3', 'reports/report.csv', '2026/report.csv');

Una PR successiva consente di passare un'istanza filesystem invece del nome di un disco.

Per maggiori dettagli, consulta la #61511.

Enum nella pausa e nella ripresa delle Queue

Jack Bayliss ha contribuito con il supporto agli enum per Queue::pause(), Queue::resume() e Queue::pauseFor(), in linea con il supporto agli enum già disponibile sugli attributi Queue/Connection dei job e sui metodi del manager come route() e forward():

Queue::pause(Queues::notifications, Connections::Redis);
Queue::resume(Queues::notifications, Connections::Redis);
Queue::pauseFor(Queues::notifications, Connections::Redis, 60);

Per maggiori dettagli, consulta la #61464.

Note di rilascio

Qui sotto puoi vedere l'elenco completo delle nuove funzionalità e degli aggiornamenti, oltre al diff tra 13.31.0 e 13.32.0 su GitHub. Le seguenti note di rilascio provengono direttamente dal changelog:

v13.32.0

  • [12.x] Default memoryExceededExitCode per Cloud by @jackbayliss in #61432
  • Avvolge il tipo di ritorno della closure in withFreshQueryLog() by @SanderMuller in #61458
  • Avvolge il tipo di ritorno della callback dell'autocompleter in askWithCompletion() by @SanderMuller in #61487
  • [13.x] Consente gli enum nei metodi pause/resume delle queue by @jackbayliss in #61464
  • [13.x] Confronta i nomi degli indici in minuscolo in hasIndex by @dwjordan in #61506
  • [13.x] Corregge containsStrict() che restituiva false quando una closure corrisponde a un valore null by @bunyaminbilenkaratas in #61507
  • [13.x] Passa l'eccezione alle callback di violazione di Eloquent by @jackbayliss in #61504
  • [13.x] Trasforma le variabili inutilizzate in argomenti nominati by @imanghafoori1 in #61513
  • [13.x] Aggiorna SupportBinaryCodecTest by @jackbayliss in #61512
  • [13.x] Corregge Factory::raw() con un conteggio pari a zero by @OpadaAlzaiede in #61510
  • [13.x] Aggiunge l'implementazione mancante di SessionHandlerInterface per PHP 9 by @crynobone in #61517
  • [13.x] Aggiunge copyToDisk & moveToDisk a FilesystemAdapter by @jackbayliss in #61511
  • [13.x] Aggiunge un driver di broadcasting Mercure by @dunglas in #61474
  • [13.x] Accetta un'istanza filesystem nei metodi copyToDisk() e moveToDisk() by @ziadoz in #61519
  • [13.x] Corregge Str::password() che restituiva caratteri extra e generava errori di validazione by @bunyaminbilenkaratas in #61521
  • [13.x] Corregge Str::camel() che non convertiva in minuscolo i primi caratteri multibyte by @rayblair06 in #61545
  • [13.x] Corregge collapseWithKeys() che andava in crash quando la collection esterna aveva chiavi stringa by @rayblair06 in #61539
  • [13.x] Corregge il TypeError in SessionGuard::userFromRecaller() quando getAuthPassword() è null by @irabbi360 in #61532
  • Rafforza i test con i mock usando il codice reale by @jasonmccreary in #61563
  • [13.x] Corregge appendToPriorityList() quando il middleware di riferimento è il primo elemento by @GabeSilvaDev in #61567
  • [13.x] Migliora i tipi di ritorno delle collection per i metodi che mutano by @axlon in #61571
  • [13.x] Aggiunge isManagedQueue a CloudManager by @jackbayliss in #61568
  • [13.x] Corregge la cache taggata di Redis che non sincronizzava la scadenza della voce del tag al touch by @Ashot1995 in #61574
  • [13.x] Decodifica il payload del job una sola volta by @jackbayliss in #61526
  • [13.x] Corregge il tipo di ritorno di sum() quando la chiave corrisponde al nome di una funzione globale by @crishoj in #61578
  • [13.x] Aggiunge UnitEnum al contract Authorizable by @hosni in #61589
  • [13.x] Aggiunge il supporto per installare Mercure tramite il comando broadcasting install by @Lea-Bar in #61587
  • [13.x] Preserva i valori non modificati durante la crittografia dei file di ambiente leggibili by @mathiasgrimm in #61503
Condividi su: LinkedIn

Altri articoli recenti