Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hogyan különböztessem meg a fennmaradó szingullonokat és azokat, amelyek nem oktánban vannak


Hogyan különböztessem meg a fennmaradó szingullonokat és azokat, amelyek nem oktánban vannak


Annak érdekében, hogy megkülönböztesse azokat a szinguletteket, amelyek fennmaradnak, és azok között, amelyek nem a Laravel Ocane -ben, meg kell értenie, hogy az oktán miként kezeli a szingulett példányokat, és hogyan oldódnak meg. Itt vannak a legfontosabb szempontok, amelyeket figyelembe kell venni:

Singletons, amely fennmarad

1. szingletonok a szolgáltatókban: A szingulettek, amelyeket a szolgáltatókon belül oldottak meg, különösen a „Boot” vagy a „regisztráció” módszerekben, továbbra is fennmaradnak a kérések között. Ennek oka az, hogy ezeket a szinguletteket az alkalmazás bootstrapping során oldják meg, és a konténer gyorsítótárában tárolják.

2. Meleg szolgáltatások: A szinguletteket hozzáadhatja az oktáni konfigurációs fájlban található „Warm” tömbbe, hogy megbizonyosodjon arról, hogy azok megoldódnak és fennmaradnak az alkalmazás bootstrapping során. Ilyen módon ezek a szingulettek minden kérésben elérhetők lesznek.

Singletons, amely nem fennáll

1. szingletonok a kérés kezelésében: A kérés kezelése során megoldott szingulettek nem fognak fennmaradni. Minden kérés alapján készülnek, és nem tárolják a konténer gyorsítótárában.

2. Öblítés Szolgáltatások: Ha van olyan csomagja, amely regisztrálja és megoldja a szingulettet egy szolgáltató belsejében, és minden kérés előtt el akarja öblíteni ezt a példányt, akkor hozzáadhatja azt az oktánkonfigurációs fájlban található „Flush” tömbbe. Ez biztosítja, hogy a szingulettet eltávolítsák a tartályból az egyes kérések kezelése után.

A legjobb gyakorlatok

1. Használjon visszahívásokat: A szingulletek regisztrálásakor a tényleges példány helyett a visszahívásokat használja annak biztosítása érdekében, hogy azok csak egyszer oldódjanak meg.

2. Kerülje a statikus tulajdonságokat: Kerülje el a statikus tulajdonságok használatát a szingulettekben, mivel ezek memória szivárgáshoz vezethetnek, és a kérések során fennmaradhatnak.

3. Használjon állandókat: A statikus tulajdonságok helyett használjon állandókat, ha lehetséges, a változhatatlanság biztosítása érdekében.

4. Példány kérési példánya: A szingulettok megoldásakor adjon vissza visszahívást, hogy a kérési példány helyesen oldódjon meg.

5. Konfigurációs adattár: Használja a `config ()` helper funkciót a konfigurációs lerakat injektálása helyett annak biztosítása érdekében, hogy a helyesen oldódjon meg.

Azáltal, hogy követi ezeket a bevált gyakorlatokat, és megérti, hogy az oktán miként kezeli a szingulett példányokat, hatékonyan kezelheti és megkülönböztetheti azokat a szinguletteket, amelyek továbbra is fennállnak, és azok között, amelyek nem az oktánon 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-pplication-and-dling-requests
[3] https://grantwinney.com/difference-between-singleton-scoped-transient/
[4] https://betterProgramming.pub/the-downsides-of-coding-with-laravel-cTane-17f4a7a4ea85?gi=d8afa3954408
[5] https://www.prismetric.com/laravel-octane/