I Laravel Octane er de viktigste forskjellene mellom en sandkasseforekomst og en vanlig forekomst:
Sandbox-forekomst
1. Klonet applikasjonsforekomst: Octane kloner den opprinnelige applikasjonsforekomsten for å lage en sandkasseforekomst for hver innkommende forespørsel. Dette sikrer at hver forespørsel har sitt eget isolerte miljø, og forhindrer tilstandsproblemer mellom forespørsler.2. Ren konfigurasjon: Sandbox-forekomsten inkluderer en ren kopi av konfigurasjonslageret, som er klonet fra den ferske sandbox-forekomsten. Dette sikrer at eventuelle mutasjoner i konfigurasjonene bare påvirker sandkassen.
3. Skylt hurtigbuffer og økt: Sandkasseforekomsten tømmer hurtigbufferen og sesjonstilstanden for å forhindre at data vedvarer på tvers av forespørsler.
4. Lokalisert oversetter: Sandbox-forekomsten setter lokalitetene inne i oversetteren til de opprinnelige lokalitetene for å sikre at oversetteren tilbakestilles for hver forespørsel.
5. Auth Forget Guards: Sandbox-forekomsten glemmer alle guards som ble satt under tidligere forespørsler for å sikre en ren tilstand.
Vanlig forekomst
1. Original applikasjonsforekomst: Den vanlige instansen er den opprinnelige applikasjonsforekomsten, som vedvarer på tvers av forespørsler.2. Persistent Configuration: Den vanlige forekomsten bruker det originale konfigurasjonslageret, noe som kan føre til tilstandsproblemer mellom forespørsler.
3. Persistent cache og sesjon: Den vanlige forekomsten tømmer ikke bufferen og sesjonstilstanden, og lar data vedvare på tvers av forespørsler.
4. Ingen lokalisert oversetter: Den vanlige forekomsten tilbakestiller ikke oversetterlokalitetene, noe som kan føre til problemer hvis programmet er avhengig av lokalitetsspesifikke innstillinger.
5. Persistent Auth Guards: Den vanlige forekomsten glemmer ikke noen vakter som ble satt under tidligere forespørsler, noe som kan føre til sikkerhetsproblemer hvis de ikke administreres riktig.
Beste praksis
1. Unngå å sende applikasjonsforekomst: Unngå å sende applikasjonsforekomsten direkte til tjenester eller singletons. Bruk i stedet `app()`-hjelperen eller `Container::getInstance()` for å sikre at riktig forekomst brukes.2. Bruk tilbakeringinger: Bruk tilbakeringinger for å returnere sandkasseforekomsten i stedet for å sende applikasjonsforekomsten direkte.
Ved å forstå disse forskjellene og følge beste praksis kan du sikre at applikasjonen din kjører effektivt og sikkert med Octane[1][5].
Sitater:[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