Trong Laravel Octane, điểm khác biệt chính giữa phiên bản sandbox và phiên bản thông thường là:
Phiên bản hộp cát
1. Phiên bản ứng dụng được nhân bản: Octane sao chép phiên bản ứng dụng gốc để tạo một phiên bản hộp cát cho mỗi yêu cầu gửi đến. Điều này đảm bảo rằng mỗi yêu cầu có môi trường riêng biệt, ngăn chặn các vấn đề về trạng thái tồn tại giữa các yêu cầu.2. Cấu hình sạch: Phiên bản hộp cát bao gồm một bản sao sạch của kho lưu trữ cấu hình, được sao chép từ phiên bản hộp cát mới. Điều này đảm bảo rằng mọi đột biến đối với cấu hình chỉ ảnh hưởng đến hộp cát.
3. Đã xóa bộ nhớ đệm và phiên: Phiên bản hộp cát xóa bộ nhớ đệm và trạng thái phiên để ngăn chặn bất kỳ dữ liệu nào tiếp tục tồn tại trong các yêu cầu.
4. Trình dịch được bản địa hóa: Phiên bản hộp cát đặt ngôn ngữ bên trong trình dịch thành ngôn ngữ gốc để đảm bảo rằng trình dịch được đặt lại cho mỗi yêu cầu.
5. Auth Quên Guards: Phiên bản hộp cát quên mọi biện pháp bảo vệ đã được đặt trong các yêu cầu trước đó để đảm bảo trạng thái sạch sẽ.
Phiên bản thông thường
1. Phiên bản ứng dụng gốc: Phiên bản thông thường là phiên bản ứng dụng gốc, tồn tại qua các yêu cầu.2. Cấu hình liên tục: Phiên bản thông thường sử dụng kho lưu trữ cấu hình ban đầu, điều này có thể dẫn đến các vấn đề về trạng thái liên tục giữa các yêu cầu.
3. Phiên và bộ nhớ đệm liên tục: Phiên bản thông thường không xóa bộ nhớ đệm và trạng thái phiên, cho phép dữ liệu tiếp tục tồn tại qua các yêu cầu.
4. Không có Trình dịch được bản địa hóa: Phiên bản thông thường không đặt lại ngôn ngữ của trình dịch, điều này có thể dẫn đến sự cố nếu ứng dụng dựa vào cài đặt dành riêng cho ngôn ngữ.
5. Các biện pháp bảo vệ xác thực liên tục: Phiên bản thông thường không quên bất kỳ biện pháp bảo vệ nào đã được đặt trong các yêu cầu trước đó, điều này có thể dẫn đến các vấn đề bảo mật nếu không được quản lý đúng cách.
Các phương pháp hay nhất
1. Tránh chuyển phiên bản ứng dụng: Tránh chuyển phiên bản ứng dụng trực tiếp tới các dịch vụ hoặc singleton. Thay vào đó, hãy sử dụng trình trợ giúp `app()` hoặc `Container::getInstance()` để đảm bảo sử dụng đúng phiên bản.2. Sử dụng lệnh gọi lại: Sử dụng lệnh gọi lại để trả về phiên bản hộp cát thay vì truyền trực tiếp phiên bản ứng dụng.
Bằng cách hiểu những khác biệt này và làm theo các phương pháp hay nhất, bạn có thể đảm bảo rằng ứng dụng của mình chạy hiệu quả và an toàn với Octane[1][5].
Trích dẫn:[1] https://www.getoctane.io/sandbox
[2] https://saleforce.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