W Laravel Octane najważniejsze różnice między instancją piaskownicy a zwykłą instancją to:
Instancja piaskownicy
1. Sklonowana instancja aplikacji: Octane klonuje oryginalną instancję aplikacji, aby utworzyć instancję piaskownicy dla każdego przychodzącego żądania. Zapewnia to, że każde żądanie ma własne izolowane środowisko, co zapobiega problemom z trwałością stanu między żądaniami.2. Wyczyść konfigurację: Instancja piaskownicy zawiera czystą kopię repozytorium konfiguracji, która jest klonowana ze świeżej instancji piaskownicy. Dzięki temu wszelkie mutacje w konfiguracjach będą miały wpływ tylko na piaskownicę.
3. Opróżniona pamięć podręczna i sesja: Instancja piaskownicy opróżnia pamięć podręczną i stan sesji, aby zapobiec utrwalaniu się danych między żądaniami.
4. Zlokalizowany tłumacz: Instancja piaskownicy ustawia ustawienia regionalne wewnątrz tłumacza na oryginalne ustawienia regionalne, aby mieć pewność, że tłumacz jest resetowany przy każdym żądaniu.
5. Auth Forget Guards: Instancja piaskownicy zapomina o wszelkich zabezpieczeniach ustawionych podczas poprzednich żądań, aby zapewnić czysty stan.
Zwykła instancja
1. Oryginalna instancja aplikacji: Zwykła instancja to oryginalna instancja aplikacji, która utrzymuje się w przypadku żądań.2. Konfiguracja trwała: Zwykła instancja korzysta z oryginalnego repozytorium konfiguracji, co może prowadzić do problemów z trwałością stanu pomiędzy żądaniami.
3. Trwała pamięć podręczna i sesja: Zwykła instancja nie opróżnia pamięci podręcznej i stanu sesji, umożliwiając zachowanie danych w przypadku żądań.
4. Brak zlokalizowanego tłumacza: Zwykła instancja nie resetuje ustawień regionalnych tłumacza, co może prowadzić do problemów, jeśli aplikacja opiera się na ustawieniach specyficznych dla ustawień regionalnych.
5. Trwałe zabezpieczenia uwierzytelniające: Zwykła instancja nie zapomina żadnych zabezpieczeń ustawionych podczas poprzednich żądań, co może prowadzić do problemów związanych z bezpieczeństwem, jeśli nie jest odpowiednio zarządzane.
Najlepsze praktyki
1. Unikaj przekazywania instancji aplikacji: Unikaj przekazywania instancji aplikacji bezpośrednio do usług lub pojedynczych obiektów. Zamiast tego użyj pomocy `app()` lub `Container::getInstance()`, aby upewnić się, że używana jest poprawna instancja.2. Użyj wywołań zwrotnych: Użyj wywołań zwrotnych, aby zwrócić instancję piaskownicy zamiast bezpośrednio przekazywać instancję aplikacji.
Rozumiejąc te różnice i postępując zgodnie z najlepszymi praktykami, możesz mieć pewność, że Twoja aplikacja będzie działać wydajnie i bezpiecznie dzięki Octane[1] [5].
Cytaty:[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-analytic.delivered
[5] https://divinglaravel.com/laravel-oktane-bootstrapping-the-application-and-handling-requests