Cos’è Octane
Laravel Octane è un pacchetto che migliora drasticamente le prestazioni di Laravel usando application server ad alte prestazioni. Con PHP-FPM l’app parte e termina a ogni richiesta. Con Octane l’app parte una volta e resta in memoria: le richieste successive sono molto più veloci. La differenza principale con PHP-FPM: il bootstrap (service provider, ecc.) non si ripete per ogni richiesta.Server supportati
Laravel Cloud offre Octane con FrankenPHP completamente gestito.
Installazione
config/octane.php.
FrankenPHP / RoadRunner
Octane scarica il binario. Nessun passo aggiuntivo.Swoole
Avvio
8000.
Worker
Watch file
Comandi
Attenzioni con la DI
Il codice resta in memoria:register/boot dei service provider vengono eseguiti una sola volta all’avvio.
Iniezione del container
app() e Container::getInstance() restituiscono sempre l’ultimo container.
Iniezione della request
I type hint di
Illuminate\Http\Request nei metodi controller/route sono sicuri. request() restituisce sempre la richiesta corrente.Iniezione del config repository
config() restituisce sempre l’ultimo.
Memory leak
Attenzione a static che accumulano dati:max-requests
Riavvia i worker dopo N richieste (default 500):Tempo massimo di esecuzione
Inconfig/octane.php (default 30s):
Task concorrenti (solo Swoole)
--task-workers.
Tick e Interval (solo Swoole)
Octane cache (solo Swoole)
Fino a 2 milioni di ops/s.Interval cache
Tabelle Swoole (solo Swoole)
Inconfig/octane.php sezione tables:
Produzione
Nginx + Octane
Supervisor
HTTPS
Laravel Cloud
1
Installa il pacchetto
2
Attiva Octane in Laravel Cloud
Nel cluster compute App attiva “Use Octane as runtime”, salva e deploya.