У Laravel Octane основні відмінності між примірником пісочниці та звичайним примірником:
Екземпляр пісочниці
1. Клонований екземпляр програми: Octane клонує оригінальний екземпляр програми, щоб створити екземпляр пісочниці для кожного вхідного запиту. Це гарантує, що кожен запит має власне ізольоване середовище, запобігаючи проблемам збереження стану між запитами.2. Чиста конфігурація: екземпляр ізольованого програмного середовища містить чисту копію репозиторію конфігурації, який клоновано з свіжого екземпляра ізольованого програмного середовища. Це гарантує, що будь-які мутації конфігурацій впливатимуть лише на пісочницю.
3. Очищений кеш і сеанс: екземпляр пісочниці очищає кеш і стан сеансу, щоб запобігти збереженню будь-яких даних у запитах.
4. Локалізований перекладач: екземпляр ізольованого програмного середовища встановлює локалі всередині перекладача на оригінальні локалі, щоб переконатися, що перекладач скидається для кожного запиту.
5. Auth Forget Guards: Екземпляр ізольованого програмного середовища забуває будь-які захисники, встановлені під час попередніх запитів, щоб забезпечити чистий стан.
Звичайний екземпляр
1. Оригінальний екземпляр програми: звичайний екземпляр — це вихідний екземпляр програми, який зберігається в усіх запитах.2. Постійна конфігурація: звичайний екземпляр використовує оригінальне сховище конфігурації, що може призвести до проблем із збереженням стану між запитами.
3. Постійний кеш і сеанс: звичайний екземпляр не очищає кеш і стан сеансу, дозволяючи даним зберігатися між запитами.
4. Немає локалізованого перекладача: звичайний екземпляр не скидає локалі перекладача, що може призвести до проблем, якщо програма покладається на налаштування, специфічні для локалі.
5. Постійні захисники авторизації: звичайний екземпляр не забуває жодних захисників, встановлених під час попередніх запитів, які можуть призвести до проблем із безпекою, якщо ними не керувати належним чином.
Найкращі практики
1. Уникайте передачі екземпляра програми: уникайте передачі екземпляра програми безпосередньо до служб або синглтонів. Замість цього використовуйте помічник app() або Container::getInstance(), щоб переконатися, що використовується правильний екземпляр.2. Використовуйте зворотні виклики: використовуйте зворотні виклики для повернення екземпляра ізольованого програмного середовища замість безпосередньої передачі екземпляра програми.
Розуміючи ці відмінності та дотримуючись найкращих практик, ви можете переконатися, що ваша програма працює ефективно та безпечно з Octane[1][5].
цитати:[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