Dans Laravel Octane, les principales différences entre une instance sandbox et une instance standard sont :
Instance de bac à sable
1. Instance d'application clonée : Octane clone l'instance d'application d'origine pour créer une instance sandbox pour chaque requête entrante. Cela garantit que chaque requête dispose de son propre environnement isolé, évitant ainsi les problèmes de persistance d'état entre les requêtes.2. Configuration propre : l'instance sandbox inclut une copie propre du référentiel de configuration, qui est clonée à partir de la nouvelle instance sandbox. Cela garantit que toute mutation des configurations n’affecte que le bac à sable.
3. Cache et session vidés : l'instance sandbox vide le cache et l'état de la session pour empêcher la persistance des données d'une requête à l'autre.
4. Traducteur localisé : l'instance sandbox définit les paramètres régionaux du traducteur sur les paramètres régionaux d'origine pour garantir que le traducteur est réinitialisé à chaque requête.
5. Auth Forget Guards : l'instance sandbox oublie toutes les protections définies lors des requêtes précédentes pour garantir un état propre.
Instance régulière
1. Instance d'application d'origine : l'instance standard est l'instance d'application d'origine, qui persiste d'une requête à l'autre.2. Configuration persistante : l'instance standard utilise le référentiel de configuration d'origine, ce qui peut entraîner des problèmes de persistance d'état entre les requêtes.
3. Cache et session persistants : l'instance standard ne vide pas le cache et l'état de la session, ce qui permet aux données de persister d'une requête à l'autre.
4. Pas de traducteur localisé : l'instance standard ne réinitialise pas les paramètres régionaux du traducteur, ce qui peut entraîner des problèmes si l'application s'appuie sur des paramètres spécifiques aux paramètres régionaux.
5. Garde d'authentification persistante : l'instance standard n'oublie aucune garde définie lors des requêtes précédentes, ce qui peut entraîner des problèmes de sécurité si elle n'est pas correctement gérée.
Bonnes pratiques
1. Évitez de transmettre l'instance d'application : évitez de transmettre l'instance d'application directement aux services ou aux singletons. Au lieu de cela, utilisez l'assistant `app()` ou `Container::getInstance()` pour vous assurer que la bonne instance est utilisée.2. Utiliser les rappels : utilisez les rappels pour renvoyer l'instance sandbox au lieu de transmettre directement l'instance d'application.
En comprenant ces différences et en suivant les meilleures pratiques, vous pouvez garantir que votre application fonctionne efficacement et en toute sécurité avec Octane[1][5].
Citations :[1] https://www.getoctane.io/sandbox
[2] https://salesforce.stackexchange.com/questions/42163/performance-difference-between-sandbox-and-production-instances
[3] https://otoy1473900221.zendesk.com/hc/en-us/articles/115001577606-Instances
[4] https://blog.octanesolutions.com.au/sandbox-analysis.delivered
[5] https://divinglaravel.com/laravel-octane-bootstrapping-the-application-and-handling-requests