Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kako razlikujem med singletoni, ki vztrajajo, in tistimi, ki ne v oktanu


Kako razlikujem med singletoni, ki vztrajajo, in tistimi, ki ne v oktanu


Če želite razlikovati med singletoni, ki vztrajajo, in tistimi, ki ne v Laravel Octaneu, morate razumeti, kako Octane obravnava primere Singletona in kako se rešijo. Tu je ključna točka, ki jih je treba upoštevati:

Singletoni, ki vztrajajo

1. Singletoni v ponudnikih storitev: Singletoni, ki so rešeni znotraj ponudnikov storitev, zlasti v metodah `Boot` ali` Register`, se bodo obdržali med zahtevami. To je zato, ker so ti singletoni razrešeni med zagonom aplikacije in so shranjeni v predpomnilniku vsebnika.

2. Tople storitve: V konfiguracijsko datoteko Octane lahko dodate singletone v matriko `Warm`, da zagotovite, da so med zagonom aplikacije razrešeni in vztrajali. Tako bodo ti singletoni na voljo na vseh zahtevah.

Singletoni, ki ne vztrajajo

1. Singletoni v obravnavi zahteve: Singletoni, ki so razrešeni med obravnavo zahteve, ne bodo vztrajali. Izdelani so na vsaki zahtevi in ​​niso shranjeni v predpomnilniku vsebnika.

2. STORITVE FLUSH: Če imate paket, ki registrira in razreši singletona znotraj ponudnika storitev in želite ta primerek izpeljati pred vsako zahtevo, ga lahko dodate v matriko `flush` v konfiguracijski datoteki Octane. To zagotavlja, da se Singleton po reševanju vsake zahteve odstrani iz vsebnika.

Najboljše prakse

1. Uporabite povratne klice: Ko registrirate Singletone, uporabite povratne klice namesto dejanskega primera, da zagotovite, da se rešijo samo enkrat.

2. Izogibajte se statičnim lastnostim: Izogibajte se uporabi statičnih lastnosti v svojih singletonih, saj lahko privedejo do puščanja pomnilnika in vztrajajo med zahtevami.

3. Uporabite konstante: Uporabite konstante namesto statičnih lastnosti, kadar je to mogoče, da zagotovite nespremenljivost.

4. Zahteva primer: Pri reševanju singletonov posredujte povratni klic, da zagotovite pravilno reševanje primera zahteve.

5. KONFIGURACIJSKO SPOROČILO: Uporabite funkcijo pomoči `config ()`, namesto da bi vbrizgali konfiguracijsko skladišče, da se zagotovi pravilno reševanje.

Če sledite tem najboljšim praksam in razumete, kako Octane obravnava primere Singletona, lahko učinkovito upravljate in razlikujete med singletoni, ki vztrajajo, in tistimi, ki v vaši aplikaciji Laravel ne delujejo na oktanu [2] [4] [5].

Navedbe:
[1] https://laracasts.com/discuss/channels/laravel/singletone-not-working-in-lavel
[2] https://divinglaravel.com/laravel-octane-bootstraphip-the-application-and-handling-requests
[3] https://grantwinney.com/difference-between med Singleton-scoped-ransient/
[4] https://betterprogramming.pub/the-downsides-of-coding-with-lavel-octane-17f4a7a4ea85?gi=d8Afa3954408
[5] https://www.primetric.com/laravel-octane/