Laravel: le novità della settimana tra queue, Eloquent e storage S3
Anche questa settimana il repository laravel/framework ha ricevuto un nuovo pacchetto di release: v13.34.0 è la più corposa, affiancata dalla v12.69.3 e da un semplice bump di versione per la v11.57.0. Il filo conduttore è il mondo queue e worker, con diversi fix su Eloquent e utility. Ecco cosa vale la pena sapere.
Queue e worker: più contesto, più controllo
La release 13.x concentra gran parte delle novità sul ciclo di vita dei job:
- l'evento
JobProcessedora include anche la durata dell'esecuzione, utile per metriche e logging senza dover instrumentare manualmente ogni job (#61672); - un job viene ora notificato quando il timeout è prossimo, così da poter chiudere in modo controllato invece di essere interrotto brutalmente (#61651);
queue:flushaccetta l'opzione--queue, per svuotare solo una coda specifica invece di fare piazza pulita su tutte (#61630).
Sul ramo 12.x arriva invece un affinamento pensato per chi orchestra i worker da fuori: l'exit code per il worker timed out è ora effettivamente raggiungibile e distinguibile, cosa non banale in sistemi di supervisione o in container gestiti da process manager (#61623).
Storage: credenziali S3 nominabili e dischi Cloud IAM
Sempre nella 12.69.3, il filesystem guadagna il supporto ai named credential provider di S3 e ai dischi basati su Cloud IAM. In pratica si possono definire profili di credenziali con un nome e referenziarli nella configurazione dei dischi, senza duplicare chiavi o ruoli tra ambienti (#61757).
Eloquent e query builder
whereMorphedTo()ewhereNotMorphedTo()ora rispettano la owner key della relazione invece di assumere l'id di default: un cambio importante per chi usa chiavi primarie personalizzate nelle relazioni polimorfiche (#61712);- la morph map viene applicata anche in lettura sulle relazioni polimorfiche, rendendo il comportamento coerente tra scrittura e query;
- dopo
increment()/decrement()gli attributi aggiornati vengono sincronizzati con lo stato originale, evitando chegetOriginal()eisDirty()restituiscano valori incoerenti (#61680); - le clausole
betweenaccettano anche valori passati comeLazyCollection, comodo quando i range arrivano da query pesanti o da generatori (#61678).
Fix mirati su Collection, Number e lock Redis
Tre correzioni che vale la pena tenere d'occhio se vi siete imbattuti in comportamenti strani:
Collection::mode()non restituisce più valori non presenti nei dati quando nella collezione ci sononull(#61686);Number::parseInt()non fallisce più confalsesu valori che superano il range a 32 bit (#61691);PhpRedisLock::refresh()funziona correttamente anche con la serializzazione phpredis abilitata, un caso che poteva rompere silenziosamente il rinnovo del lock (#61690).
11.x: solo manutenzione
La v11.57.0 non introduce modifiche funzionali rilevanti: è un aggiornamento di versione per il ramo LTS, da tenere allineato se il vostro progetto non è ancora passato a 12 o 13.
In sintesi: se gestite code di job importanti, la 13.34.0 porta strumenti concreti per osservabilità e gestione dei timeout; se usate S3 con credenziali dinamiche, la 12.69.3 semplifica parecchio la configurazione.
Fonte originale:
https://github.com/laravel/frameworkAltri articoli recenti
Laravel AI 1.1 e 1.2: Agent Skills, Cohere e structured output più solidi
Le release 1.1.0 e 1.2.0 di laravel/ai portano gli Agent Skills, l'approvazione obbligatoria per i tool built-in e nuovi provider come Cohere e Laya self-hosted. Sul fronte qualità arrivano i fix allo structured output per Bedrock e il supporto alle provider options. Aggiornati anche i modelli di default, con Claude 4.7+ che ignora i sampling params.
Laravel 13.35.0: scheduler più controllabile, code più flessibili e response Markdown
Laravel 13.35.0 porta Schedule::alwaysOnOneServer(), il supporto a schedule:interrupt per i comandi di lunga durata, --memory in percentuale per queue:work e il nuovo metodo markdown() sulla response factory. Tante piccole migliorie anche a test, view compilate in parallelo e dischi local.
BashBox: un interprete Bash in sandbox per agenti AI in PHP
BashBox è un interprete bash scritto in puro PHP che permette di eseguire gli script generati dagli agenti AI senza mai ricorrere a proc_open, exec o shell_exec. Ogni comando è una classe PHP che lavora su un filesystem virtuale, con limiti di esecuzione, quote disco e accesso di rete configurabili. Ideale per chi sviluppa agenti con il Laravel AI SDK o altre librerie simili.