A Laravel Octane esetében a legfontosabb különbségek a sandbox-példány és a normál példány között:
Sandbox-példány
1. Klónozott alkalmazáspéldány: Az Octane klónozza az eredeti alkalmazáspéldányt, hogy minden bejövő kéréshez hozzon létre egy sandbox-példányt. Ez biztosítja, hogy minden kérés saját izolált környezettel rendelkezzen, megakadályozva a kérések közötti állapotmaradvány-problémákat.2. Tiszta konfiguráció: A sandbox-példány tartalmazza a konfigurációs lerakat tiszta másolatát, amely a friss sandbox-példányból klónozott. Ez biztosítja, hogy a konfigurációk mutációi csak a homokozót érintsék.
3. Kiürített gyorsítótár és munkamenet: A sandbox-példány kiüríti a gyorsítótár és a munkamenet állapotát, hogy megakadályozza az adatok fennmaradását a kérések között.
4. Localized Translator: A sandbox-példány beállítja a fordítón belüli területi beállításokat az eredeti területi beállításokra, hogy biztosítsa a fordító alaphelyzetbe állítását minden kérésnél.
5. Auth Forget Guards: A sandbox példány elfelejti a korábbi kérések során beállított őröket a tiszta állapot biztosítása érdekében.
Rendszeres példány
1. Eredeti alkalmazáspéldány: A normál példány az eredeti alkalmazáspéldány, amely a kérések között is megmarad.2. Állandó konfiguráció: A normál példány az eredeti konfigurációs lerakat használja, ami állapotmaradással kapcsolatos problémákat okozhat a kérések között.
3. Állandó gyorsítótár és munkamenet: A normál példány nem üríti ki a gyorsítótár és a munkamenet állapotát, lehetővé téve az adatok fennmaradását a kérések között.
4. Nincs lokalizált fordító: A normál példány nem állítja vissza a fordító területi beállításait, ami problémákhoz vezethet, ha az alkalmazás a terület-specifikus beállításokra támaszkodik.
5. Persistent Auth Guards: A normál példány nem felejti el a korábbi kérések során beállított őröket, amelyek biztonsági problémákhoz vezethetnek, ha nem megfelelően kezelik őket.
Bevált gyakorlatok
1. Kerülje az alkalmazáspéldányok átadását: Kerülje el az alkalmazáspéldány közvetlen szolgáltatásnak vagy szinglitonnak való átadását. Ehelyett használja az "app()" súgót vagy a "Container::getInstance()"-t annak biztosítására, hogy a megfelelő példányt használja-e.2. Visszahívások használata: Használja a visszahívásokat a sandbox-példány visszaküldésére az alkalmazáspéldány közvetlen átadása helyett.
E különbségek megértésével és a bevált gyakorlatok követésével biztosíthatja, hogy alkalmazása hatékonyan és biztonságosan fusson az Octane[1][5] segítségével.
Idézetek:[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