Qu’est-ce qu’Octane
Laravel Octane est un package qui accélère fortement Laravel en utilisant des serveurs d’applications à haute performance. Avec PHP-FPM classique, l’application démarre et s’arrête pour chaque requête. Avec Octane, l’application démarre une seule fois, reste en mémoire, et sert les requêtes suivantes très rapidement. La grande différence avec PHP-FPM : le bootstrap (enregistrement des service providers, etc.) n’est plus refait à chaque requête. Un seul démarrage, puis un traitement ultra-rapide.Serveurs supportés
Trois options :Laravel Cloud recommande Octane avec FrankenPHP et le prend en charge en managé.
Installation et configuration
Installation
Setup
config/octane.php est généré.
FrankenPHP
Octane télécharge automatiquement le binaire.RoadRunner
Octane télécharge automatiquement le binaire.Swoole
Installez l’extension via PECL.Démarrage
Serveur
http://localhost:8000.
Serveur spécifique
Nombre de workers
--task-workers pour les workers de tâches :
Watcher
Redémarre automatiquement quand un fichier change.Autres commandes
Injection de dépendances
Avec Octane, l’application est conservée en mémoire : les méthodesregister / boot des providers ne s’exécutent qu’une fois au démarrage. Attention à ne pas injecter des instances anciennes de container ou de request.
Injection du container
Injecter le container dans un singleton fige un ancien container.app() et Container::getInstance() renvoient toujours le container courant.
Injection de la requête
Type-hinter
Illuminate\Http\Request dans une méthode de contrôleur reste sûr. request() retourne également la requête courante.Injection du repository de configuration
config() retourne toujours la configuration courante.
Fuites mémoire
Comme l’application vit en mémoire, cumuler des données dans des propriétés statiques crée des fuites.max-requests pour recycler les workers
Redémarre le worker après N requêtes. Défaut : 500.
Durée d’exécution max
Dansconfig/octane.php, défaut 30 s.
Tâches concurrentes (Swoole uniquement)
Octane::concurrently() exécute plusieurs closures en parallèle.
--task-workers.
Tick et interval (Swoole uniquement)
Exécutez périodiquement du code dans unboot de provider.
Cache Octane (Swoole uniquement)
Cache en mémoire ultra rapide utilisant les Swoole Tables. Jusqu’à 2 millions d’opérations/s.Interval cache
Cache auto-actualisé.Swoole Tables (Swoole uniquement)
Tables partagées entre workers, définies dansconfig/octane.php.
Exploitation en production
Nginx + Octane
Typiquement, Nginx sert les fichiers statiques et termine le SSL, puis proxie vers Octane.Supervisor
Gardez Octane démarré via Supervisor.Activer HTTPS
Pour générer des URLs HTTPS via Octane :Laravel Cloud
Laravel Cloud prend Octane + FrankenPHP en charge en managé. Pas de config Nginx / Supervisor : deux étapes.1
Installer le package
2
Activer Octane sur Laravel Cloud
Ouvrez les paramètres de compute App, activez « Use Octane as runtime », enregistrez et déployez. Cloud construit et démarre l’app avec FrankenPHP + Octane.