No Laravel Octane, as principais diferenças entre uma instância sandbox e uma instância regular são:
Instância de sandbox
1. Instância de aplicativo clonada: Octane clona a instância original do aplicativo para criar uma instância de sandbox para cada solicitação recebida. Isso garante que cada solicitação tenha seu próprio ambiente isolado, evitando problemas de persistência de estado entre solicitações.2. Configuração limpa: a instância do sandbox inclui uma cópia limpa do repositório de configuração, que é clonado a partir da nova instância do sandbox. Isso garante que quaisquer mutações nas configurações afetem apenas o sandbox.
3. Cache e sessão liberados: a instância do sandbox libera o cache e o estado da sessão para evitar que quaisquer dados persistam nas solicitações.
4. Tradutor localizado: a instância do sandbox define as localidades dentro do tradutor para as localidades originais para garantir que o tradutor seja redefinido para cada solicitação.
5. Auth Forget Guards: a instância do sandbox esquece quaisquer proteções que foram definidas durante solicitações anteriores para garantir um estado limpo.
Instância normal
1. Instância do aplicativo original: a instância regular é a instância do aplicativo original, que persiste entre as solicitações.2. Configuração persistente: a instância regular usa o repositório de configuração original, o que pode levar a problemas de persistência de estado entre solicitações.
3. Cache e sessão persistentes: a instância regular não libera o cache e o estado da sessão, permitindo que os dados persistam entre as solicitações.
4. Nenhum tradutor localizado: a instância regular não redefine as localidades do tradutor, o que pode causar problemas se o aplicativo depender de configurações específicas de localidade.
5. Persistent Auth Guards: A instância regular não esquece nenhuma proteção que foi definida durante solicitações anteriores, o que pode levar a problemas de segurança se não for gerenciado adequadamente.
Melhores Práticas
1. Evite passar a instância do aplicativo: evite passar a instância do aplicativo diretamente para serviços ou singletons. Em vez disso, use o auxiliar `app()` ou `Container::getInstance()` para garantir que a instância correta seja usada.2. Usar retornos de chamada: use retornos de chamada para retornar a instância do sandbox em vez de passar a instância do aplicativo diretamente.
Ao compreender essas diferenças e seguir as práticas recomendadas, você pode garantir que seu aplicativo seja executado de maneira eficiente e segura com o Octane[1][5].
Citações:[1] https://www.getoctano.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-análise.delivered
[5] https://divinglaravel.com/laravel-octane-bootstrapping-the-application-and-handling-requests