In Laravel Octane zijn de belangrijkste verschillen tussen een sandbox-instantie en een gewone instantie:
Sandbox-instantie
1. Gekloonde applicatie-instantie: Octane kloont de originele applicatie-instantie om voor elk binnenkomend verzoek een sandbox-instantie te maken. Dit zorgt ervoor dat elk verzoek zijn eigen geïsoleerde omgeving heeft, waardoor statuspersistentieproblemen tussen verzoeken worden voorkomen.2. Opgeschoonde configuratie: de sandbox-instantie bevat een schone kopie van de configuratierepository, die is gekloond vanuit de nieuwe sandbox-instantie. Dit zorgt ervoor dat eventuele mutaties in de configuraties alleen de sandbox beïnvloeden.
3. Cache en sessie leeggemaakt: de sandbox-instantie leegt de cache- en sessiestatus om te voorkomen dat gegevens bij verzoeken blijven bestaan.
4. Gelokaliseerde vertaler: de sandbox-instantie stelt de landinstellingen in de vertaler in op de oorspronkelijke landinstellingen om ervoor te zorgen dat de vertaler voor elk verzoek opnieuw wordt ingesteld.
5. Auth Forget Guards: de sandbox-instantie vergeet alle bewakers die tijdens eerdere verzoeken zijn ingesteld om een schone status te garanderen.
Normaal exemplaar
1. Oorspronkelijke toepassingsinstantie: de reguliere instantie is de oorspronkelijke toepassingsinstantie, die bij alle verzoeken blijft bestaan.2. Persistente configuratie: het reguliere exemplaar gebruikt de oorspronkelijke configuratierepository, wat kan leiden tot statuspersistentieproblemen tussen verzoeken.
3. Persistente cache en sessie: het reguliere exemplaar wist de cache- en sessiestatus niet, waardoor gegevens bij alle verzoeken blijven bestaan.
4. Geen gelokaliseerde vertaler: het reguliere exemplaar reset de landinstellingen van de vertaler niet, wat tot problemen kan leiden als de toepassing afhankelijk is van landspecifieke instellingen.
5. Persistente verificatiebeveiligingen: de reguliere instantie vergeet geen beveiligingen die zijn ingesteld tijdens eerdere verzoeken, wat tot beveiligingsproblemen kan leiden als deze niet goed worden beheerd.
Beste praktijken
1. Vermijd het doorgeven van applicatie-instantie: Vermijd het rechtstreeks doorgeven van de applicatie-instantie aan services of singletons. Gebruik in plaats daarvan de `app()` helper of `Container::getInstance()` om er zeker van te zijn dat de juiste instantie wordt gebruikt.2. Gebruik callbacks: gebruik callbacks om de sandbox-instantie te retourneren in plaats van de applicatie-instantie rechtstreeks door te geven.
Door deze verschillen te begrijpen en best practices te volgen, kunt u ervoor zorgen dat uw applicatie efficiënt en veilig werkt met Octane[1][5].
Citaties:[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