Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kā es varu atšķirt singletonus, kas saglabājas, un tiem, kas to nedara oktānskaitlī


Kā es varu atšķirt singletonus, kas saglabājas, un tiem, kas to nedara oktānskaitlī


Lai atšķirtu singletonus, kas joprojām pastāv, un tiem, kas nav Laravel oktānskaitlī, jums jāsaprot, kā oktāns rīkojas ar singletona gadījumiem un kā tie tiek atrisināti. Šeit ir galvenie punkti, kas jāņem vērā:

Singletons, kas saglabājas

1. Singletons pakalpojumu sniedzējiem: singletoni, kas izšķirti pakalpojumu sniedzēju iekšienē, īpaši `Boot` vai` reģistra centrā, saglabāsies visos pieprasījumos. Tas notiek tāpēc, ka šie singletoni tiek atrisināti lietojumprogrammas sāknēšanas laikā un tiek glabāti konteineru kešatmiņā.

2. Silti pakalpojumi: Oktāna konfigurācijas failā “Siltā” var pievienot singletonus, lai pārliecinātos, ka tie ir atrisināti un pastāvīgi lietojumprogrammas sāknēšanas laikā. Tādā veidā šie singletoni būs pieejami visos pieprasījumos.

Singletons, kas neatliek

1. Singletons pēc pieprasījuma apstrādes: Singletons, kas tiek atrisināts pieprasījuma apstrādes laikā, nepaliks. Tie ir veidoti pēc katra pieprasījuma un netiek glabāti konteineru kešatmiņā.

2. Flush Services: ja jums ir pakete, kas reģistrē un atrisina singletonu pakalpojumu sniedzēja iekšienē un vēlaties šo gadījumu izskalot pirms katra pieprasījuma, to var pievienot `flush” masīvam oktāna konfigurācijas failā. Tas nodrošina, ka singletons tiek noņemts no konteinera pēc katra pieprasījuma apstrādes.

labākā prakse

1. Izmantojiet atzvanīšanu: reģistrējot singletonus, faktiskā instances vietā izmantojiet atzvanīšanu, lai pārliecinātos, ka tie tiek atrisināti tikai vienu reizi.

2. Izvairieties no statiskajām īpašībām: izvairieties no statiskām īpašībām izmantošanas savos singletonos, 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īt instanci: Singletonu risinot, nokārtojiet atzvanīšanu, lai nodrošinātu, ka pieprasījuma instance tiek pareizi atrisināta.

5. Konfigurācijas repozitorijs: izmantojiet `config ()` palīga funkciju, nevis injicējot konfigurācijas krātuvi, lai pārliecinātos, ka tā ir pareizi atrisināta.

Ievērojot šo labāko praksi un izprotot, kā oktānāns rīkojas ar singletona gadījumiem, jūs varat efektīvi pārvaldīt un atšķirt starp singletoniem, kas pastāv, un tiem, kas jūsu laravel lietojumprogrammā darbojas ar oktānskaitli [2] [4] [5].

Atsauces:
[1] https://laracasts.com/discuss/channels/laravel/singletone-not-working-in-laravel
[2] https://divinglaravel.com/laravel-octane-bootstrapping-the-application-and-Locking-requests
[3] https://grantwinney.com/difference-weenween-weing-singleton-scoped-transient/
[4] https://betterprogramming.pub/the-downSides-of-coding-with-laravel-octane-17f4a7a4ea85?gi=d8afa3954408
[5] https://www.prrismetric.com/laravel-octane/