Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hogyan különböztethetem meg az oktánszámban fennmaradó szinglihangokat és azokat, amelyek nem


Hogyan különböztethetem meg az oktánszámban fennmaradó szinglihangokat és azokat, amelyek nem


Ahhoz, hogy különbséget tudjon tenni a Laravel Octane-ban fennmaradó és nem létező szingapúrok között, meg kell értenie, hogy az Octane hogyan kezeli az egyhangú példányokat, és hogyan oldja meg azokat. Íme a legfontosabb szempontok, amelyeket figyelembe kell venni:

Singletons, amelyek továbbra is fennállnak

1. Singletons in Service Providers: A szolgáltatókon belül feloldott szingletonok, különösen a "boot" vagy a "register" metódusban, a kérések között megmaradnak. Ennek az az oka, hogy ezeket a szingleteket az alkalmazás rendszerindítása során a rendszer feloldja, és a tároló gyorsítótárában tárolja őket.

2. Warm Services: Az Octane konfigurációs fájlban található "meleg" tömbhöz szingutonokat adhat hozzá, hogy biztosítsa azok feloldását és fennmaradását az alkalmazás rendszerindítása során. Ily módon ezek a szinglihangok minden kérés esetén elérhetőek lesznek.

Singletonok, amelyek nem maradnak fenn

1. Singletons in Request Handling: A kéréskezelés során feloldott szingletonok nem maradnak fenn. Ezeket minden kérésre elkészítik, és nem tárolódnak a tároló gyorsítótárában.

2. Flush Services: Ha van egy csomagja, amely regisztrál és felold egy szinglitont egy szolgáltatón belül, és minden kérés előtt ki szeretné üríteni azt a példányt, akkor hozzáadhatja az Octane konfigurációs fájl "flush" tömbjéhez. . Ez biztosítja, hogy az egyes kérések kezelése után a szingli eltávolításra kerüljön a tárolóból.

Bevált gyakorlatok

1. Visszahívások használata: Singletonok regisztrálásakor a tényleges példány helyett használjon visszahívásokat, hogy azok csak egyszer történjenek meg.

2. Kerülje a statikus tulajdonságokat: Kerülje a statikus tulajdonságok használatát a szingliben, mivel azok memóriaszivárgáshoz vezethetnek, és a kérések között is fennmaradhatnak.

3. Konstansok használata: Ha lehetséges, használjon állandókat a statikus tulajdonságok helyett, hogy biztosítsa az állandóságot.

4. Példány kérése: Az egyhangúak feloldásakor adjon visszahívást, hogy megbizonyosodjon a kéréspéldány helyes feloldásáról.

5. Configuration Repository: Használja a `config()' helper függvényt ahelyett, hogy a konfigurációs tárat beilleszti a helyes feloldás érdekében.

Ha követi ezeket a bevált módszereket, és megérti, hogy az Octane hogyan kezeli az egyhangú példányokat, hatékonyan kezelheti és megkülönböztetheti a fennmaradó és a nem létező singletonokat az Octane-on futó Laravel alkalmazásban[2][4][5].

Idézetek:
[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/