notiziephp.it

Non saltare `else` con Octane

Traduzione da Spatie
22 Giugno 2026 Tempo di lettura: 1 minuto
Non saltare `else` con Octane

La settimana scorsa mi sono imbattuto in un bug subdolo di Octane. Dovevamo disabilitare la cifratura della history di Inertia in alcuni punti dell'app. Di default è abilitata ovunque. Così abbiamo aggiunto un controllo sulla route nel middleware per disattivarla.

class HandleInertiaRequests
{
    public function handle(Request $request, Closure $next)
    {
        if ($request->is('admin/*')) {
            Inertia::encryptHistory(false);
        }
        
        // …
    }
}

Il problema è che, se stai eseguendo Octane e fai una richiesta a una route admin/*, la cifratura della history verrà disabilitata e non c'è nulla che la riabiliti per la richiesta successiva.

La soluzione è assicurarsi che entrambi i rami dell'istruzione vengano eseguiti.

class HandleInertiaRequests
{
    public function handle(Request $request, Closure $next)
    {
        if ($request->is('admin/*')) {
            Inertia::encryptHistory(false);
        } else {
            Inertia::encryptHistory(true);
        }
        
        // …
    }
}

O, in modo più conciso:

class HandleInertiaRequests
{
    public function handle(Request $request, Closure $next)
    {
        Inertia::encryptHistory(! $request->is('admin/*'));
 
        // …
    }
}
Condividi su: LinkedIn

Altri articoli recenti