Skip to main content

Cos’è Laravel Pennant

Laravel Pennant è un pacchetto leggero per i feature flag. Ti permette rollout progressivi, A/B test e trunk-based development.

Cosa sono i feature flag

I flag separano deploy e rilascio: il codice va in produzione ma la funzionalità è controllata da config.

Installazione

1

Pacchetto

2

Pubblica config e migration

3

Migrate


Configurazione

config/pennant.php gestisce lo store:

Definizione delle feature

Closure-based

Nel boot di un service provider:
Se la definizione è solo una Lottery puoi omettere la closure:

Class-based

app/Features/NewApi.php:

Nome memorizzato

Metodo before

Eseguito in memoria prima dello store; se non null prevale.
Utile per kill switch o rollout schedulati.

Verifica delle feature

active / inactive

Classe:
Altri metodi:

when / unless

Trait HasFeatures

Blade

Middleware

Il middleware EnsureFeaturesAreActive richiede la feature: se inattiva restituisce 400.
Response personalizzata:

Cache in-memory

Pennant memorizza i risultati per richiesta.

Scope

Specifica dello scope

Default: utente autenticato. Con for():
Esempio per team:

Scope predefinito

Dopo:

Scope nullable

Se lo scope è null (route senza autenticazione, Artisan), la definizione deve accettarlo altrimenti restituisce false.

Valori ricchi

Non solo boolean:
Recupero:
Blade con valore:
Con valori ricchi, tutto ciò che non è false è considerato attivo.

Più feature contemporaneamente

Tutte:
Per includere anche le class-based nel risultato:

Eager loading

Solo mancanti:

Aggiornamento dei valori

Manuale

Dimenticare per rivalutare:

Bulk

Purge

Comandi Artisan:

Test

tab=Pest
tab=PHPUnit
Classe:
tab=Pest
tab=PHPUnit

Store per i test


Driver personalizzato

Implementa Laravel\Pennant\Contracts\Driver.

Prossimi passi

Gestione errori

Gestione delle eccezioni.

Laravel Pulse

Dashboard di monitoraggio.
Ultima modifica il 13 luglio 2026