Cosa sono le funzioni helper
Laravel fornisce numerose funzioni PHP globali (helper). La maggior parte è usata internamente dal framework, ma puoi liberamente utilizzarle anche nella tua applicazione. Gli helper si dividono nelle seguenti categorie principali:- Array e oggetti — la classe
Arr::e funzioni comedata_get() - Numeri — la classe
Number:: - Path — funzioni di path come
app_path(),storage_path() - URL — funzioni di generazione URL come
route(),url(),asset() - Altro — utility comuni come
config(),collect(),auth()
Le funzioni helper non richiedono
use e sono richiamabili da ovunque. Per usare le classi Arr o Number serve l’import (use Illuminate\Support\Arr;, ecc.).Helper per array (classe Arr)
Arr::get() — recupero con notazione dot
Recupera in modo sicuro un valore annidato da un array multidimensionale con la notazione dot (foo.bar.baz). Se la chiave non esiste restituisce il default.
Arr::set() — assegna un valore annidato
Arr::has() — verifica dell’esistenza di una chiave
Arr::only() / Arr::except() — filtra o esclude chiavi
Utile per prendere dalla request solo le chiavi che ti servono o per escluderne di indesiderate.
Arr::pluck() — estrai una chiave specifica da array annidati
Arr::first() / Arr::last() — primo o ultimo che soddisfa la condizione
Arr::flatten() — appiattisce array multidimensionali
Arr::wrap() — garantisce un array
Se il valore non è un array lo incapsula in uno. null diventa array vuoto. Utile per argomenti flessibili.
Arr::sort() — ordina per valori
Arr::dot() / Arr::undot() — conversione con notazione dot
Arr::join() — unisce array in stringa
data_get() — accesso a dati annidati
Versione generalizzata di Arr::get(). Supporta array, oggetti, modelli Eloquent e collection.
Helper numerici (classe Number)
Number::format() — formatta i numeri
Number::currency() — formattazione valuta
Number::fileSize() — dimensione file leggibile
Number::abbreviate() — numeri abbreviati
Number::percentage() — percentuale
Helper di path
Restituiscono i percorsi delle directory dell’applicazione. Sono corretti indipendentemente dall’ambiente o dal target di deploy.Helper URL
route() — URL per route con nome
url() — URL assoluto da un path qualsiasi
asset() — URL degli asset statici
to_route() — redirect a una route con nome
Altri helper comuni
config() — leggi/imposta valori di configurazione
collect() — crea una Collection
auth() — recupera l’utente autenticato
blank() / filled() — verifica di vuoto
blank() considera true null, stringhe vuote, solo spazi, collection e array vuoti. filled() è l’opposto.
abort() / abort_if() / abort_unless() — eccezioni HTTP
dd() / dump() — debug
dispatch() — job in coda
encrypt() / decrypt() — cifratura
env() — leggi variabili d’ambiente
Arr vs collect()
Arr:: opera su array PHP, collect() restituisce oggetti Collection.
I risultati Eloquent sono già Collection; non serve avvolgerli con
collect(). Se ti basta una manipolazione semplice, Arr:: è più immediato.Riepilogo
Helper più usati
Helper più usati
| Helper | Uso |
|---|---|
Arr::get($array, 'a.b.c', $default) | Lettura sicura da array annidati |
Arr::only($array, $keys) | Solo alcune chiavi |
Arr::except($array, $keys) | Escludi alcune chiavi |
Arr::pluck($array, 'key') | Elenco valori di una chiave |
Arr::flatten($array) | Appiattisci array |
Arr::wrap($value) | Garantisci array |
data_get($target, 'a.*.b') | Lettura con wildcard |
Number::format($n) | Formatta numero |
Number::currency($n, 'EUR') | Formatta valuta |
Number::fileSize($bytes) | Dimensione file |
route('name', $params) | URL route con nome |
url('path') | URL assoluto |
asset('path') | URL asset statico |
config('key', $default) | Leggi config |
collect($array) | Crea Collection |
auth()->user() | Utente corrente |
blank($value) | Verifica vuoto |
filled($value) | Verifica non vuoto |
abort(403) | Solleva eccezione HTTP |
dispatch($job) | Job in coda |
env('KEY', $default) | Variabile d’ambiente |
Arr vs collect()
Arr vs collect()
Usa
Arr:::- Operazioni semplici (accesso annidato, filtri di chiavi)
- Quando non ti serve l’overhead di una Collection
- Vuoi restare su array
collect():- Concatenare più operazioni
- Manipolare risultati Eloquent (già Collection)
- Metodi propri delle Collection (
map,filter,groupBy, ecc.)