Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Ποιες είναι οι βασικές διαφορές μεταξύ μιας παρουσίας sandbox και μιας κανονικής παρουσίας σε Octane


Ποιες είναι οι βασικές διαφορές μεταξύ μιας παρουσίας sandbox και μιας κανονικής παρουσίας σε Octane


Στο Laravel Octane, οι βασικές διαφορές μεταξύ μιας παρουσίας sandbox και μιας κανονικής παρουσίας είναι:

Περίπτωση Sandbox

1. Κλωνοποιημένη Περίπτωση Εφαρμογής: Το Octane κλωνοποιεί την αρχική παρουσία εφαρμογής για να δημιουργήσει ένα στιγμιότυπο sandbox για κάθε εισερχόμενο αίτημα. Αυτό διασφαλίζει ότι κάθε αίτημα έχει το δικό του απομονωμένο περιβάλλον, αποτρέποντας προβλήματα διατήρησης κατάστασης μεταξύ των αιτημάτων.
2. Clean Configuration: Η παρουσία του sandbox περιλαμβάνει ένα καθαρό αντίγραφο του αποθετηρίου διαμόρφωσης, το οποίο κλωνοποιείται από το νέο παράδειγμα sandbox. Αυτό διασφαλίζει ότι τυχόν μεταλλάξεις στις διαμορφώσεις επηρεάζουν μόνο το sandbox.
3. Καθυστέρηση προσωρινής μνήμης και περίοδος λειτουργίας: Η παρουσία του sandbox ξεπλένει την προσωρινή μνήμη και την κατάσταση της περιόδου λειτουργίας για να αποτρέψει τη διατήρηση τυχόν δεδομένων μεταξύ των αιτημάτων.
4. Τοπικός μεταφραστής: Η παρουσία του sandbox ορίζει τις τοπικές ρυθμίσεις στο εσωτερικό του μεταφραστή στις αρχικές τοπικές ρυθμίσεις για να διασφαλίσει ότι ο μεταφραστής επαναφέρεται για κάθε αίτημα.
5. Auth Forget Guards: Η παρουσία του sandbox ξεχνά τυχόν προστατευτικά που είχαν οριστεί κατά τη διάρκεια προηγούμενων αιτημάτων για να διασφαλιστεί μια καθαρή κατάσταση.

Κανονικό παράδειγμα

1. Αρχική περίπτωση εφαρμογής: Η κανονική παρουσία είναι η αρχική παρουσία εφαρμογής, η οποία παραμένει σε όλες τις αιτήσεις.
2. Μόνιμη διαμόρφωση: Η κανονική παρουσία χρησιμοποιεί το αρχικό αποθετήριο ρυθμίσεων, το οποίο μπορεί να οδηγήσει σε ζητήματα επιμονής κατάστασης μεταξύ των αιτημάτων.
3. Μόνιμη προσωρινή μνήμη και περίοδος λειτουργίας: Η κανονική παρουσία δεν ξεπλένει την προσωρινή μνήμη και την κατάσταση της περιόδου λειτουργίας, επιτρέποντας στα δεδομένα να διατηρούνται σε όλα τα αιτήματα.
4. Χωρίς τοπικό μεταφραστή: Η κανονική παρουσία δεν επαναφέρει τις τοπικές ρυθμίσεις του μεταφραστή, κάτι που μπορεί να οδηγήσει σε προβλήματα εάν η εφαρμογή βασίζεται σε ρυθμίσεις που αφορούν συγκεκριμένες τοπικές ρυθμίσεις.
5. Μόνιμοι Φύλακες Εξουσιοδότησης: Η κανονική παρουσία δεν ξεχνά κανένα φύλακα που είχε οριστεί κατά τη διάρκεια προηγούμενων αιτημάτων, τα οποία μπορεί να οδηγήσουν σε ζητήματα ασφαλείας εάν δεν διαχειρίζονται σωστά.

Βέλτιστες πρακτικές

1. Avoid Passing Application Instance: Αποφύγετε τη διαβίβαση της παρουσίας εφαρμογής απευθείας σε υπηρεσίες ή singleton. Αντίθετα, χρησιμοποιήστε το βοηθητικό πρόγραμμα "app()" ή "Container::getInstance()" για να βεβαιωθείτε ότι χρησιμοποιείται η σωστή παρουσία.
2. Χρήση επανάκλησης: Χρησιμοποιήστε επανακλήσεις για να επιστρέψετε την παρουσία του sandbox αντί να μεταβιβάσετε απευθείας την παρουσία της εφαρμογής.

Κατανοώντας αυτές τις διαφορές και ακολουθώντας τις βέλτιστες πρακτικές, μπορείτε να διασφαλίσετε ότι η εφαρμογή σας εκτελείται αποτελεσματικά και με ασφάλεια με το 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