Lai atšķirtu vienumus, kas saglabājas, no tiem, kas nepastāv programmā Laravel Octane, jums ir jāsaprot, kā Octane apstrādā atsevišķas lietas un kā tās tiek atrisinātas. Šeit ir galvenie punkti, kas jāņem vērā:
Singletons, kas saglabājas
1. Singletons in Service Providers: Singletons, kas ir atrisināti pakalpojumu sniedzēju iekšienē, jo īpaši, izmantojot “sāknēšanas” vai “reģistrācijas” metodi, saglabāsies visos pieprasījumos. Tas ir tāpēc, ka šie atsevišķie elementi tiek atrisināti lietojumprogrammas sāknēšanas laikā un tiek saglabāti konteinera kešatmiņā.
2. Warm Services: varat pievienot vientoņus masīvam “siltais” Octane konfigurācijas failā, lai nodrošinātu, ka tie tiek atrisināti un saglabāti lietojumprogrammas sāknēšanas laikā. Tādā veidā šie singletoni būs pieejami visos pieprasījumos.
Singletons, kas nepaliek
1. Singletons pieprasījuma apstrādē: atsevišķie toņi, kas tiek atrisināti pieprasījuma apstrādes laikā, nepaliks. Tie tiek veidoti pēc katra pieprasījuma un netiek glabāti konteinera kešatmiņā.
2. Flush Services: ja jums ir pakotne, kas reģistrē un atrisina vienu pakalpojumu sniedzēja iekšienē, un vēlaties izskalot šo gadījumu pirms katra pieprasījuma, varat to pievienot masīvam “flush” konfigurācijas failā Octane. . Tas nodrošina, ka pēc katra pieprasījuma apstrādes viengabals tiek izņemts no konteinera.
Labākā prakse
1. Izmantojiet atzvanīšanu: reģistrējot atsevišķus zvanus, izmantojiet atzvanīšanu, nevis faktisko gadījumu, lai nodrošinātu, ka tie tiek atrisināti tikai vienu reizi.
2. Izvairieties no statiskām īpašībām: izvairieties no statisku rekvizītu izmantošanas savos viengabalos, jo tie var izraisīt atmiņas noplūdes un saglabāties visos pieprasījumos.
3. Izmantojiet konstantes: ja iespējams, izmantojiet konstantes, nevis statiskās īpašības, lai nodrošinātu nemainīgumu.
4. Pieprasījuma instance: atrisinot atsevišķus gadījumus, nosūtiet atzvanīšanu, lai nodrošinātu, ka pieprasījuma instance ir atrisināta pareizi.
5. Konfigurācijas krātuve: izmantojiet palīgfunkciju “config()”, nevis ievadiet konfigurācijas repozitoriju, lai nodrošinātu, ka tā ir pareizi atrisināta.
Ievērojot šo paraugpraksi un izprotot, kā Octane apstrādā atsevišķas lietas, jūs varat efektīvi pārvaldīt un atšķirt vienumus, kas saglabājas no tiem, kas nav pieejami jūsu Laravel lietojumprogrammā, kas darbojas Octane[2][4][5].
Citāts:[1] https://laracasts.com/discuss/channels/laravel/singletone-not-working-in-laravel
[2] https://divinglaravel.com/laravel-octane-bootstrapping-the-application-and-handling-requests
[3] https://grantwinney.com/difference-between-singleton-scoped-transient/
[4] https://betterprogramming.pub/the-downsides-of-coding-with-laravel-octane-17f4a7a4ea85?gi=d8afa3954408
[5] https://www.prismetric.com/laravel-octane/