Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jak rozlišuji mezi singletony, které přetrvávají, a těmi, kteří nejsou v oktanu


Jak rozlišuji mezi singletony, které přetrvávají, a těmi, kteří nejsou v oktanu


Chcete -li rozlišovat mezi singletony, které přetrvávají, a těmi, kteří nemají v Laravel Octane, musíte pochopit, jak oktan zpracovává singleton instance a jak jsou vyřešeny. Zde jsou klíčové body, které je třeba zvážit:

Singletons, které přetrvávají

1. Singletony v poskytovatelích služeb: Singletony, které jsou vyřešeny uvnitř poskytovatelů služeb, konkrétně v metodách „boot“ nebo `registrace“, přetrvávají napříč požadavky. Je to proto, že tyto singletony jsou vyřešeny během bootstrappingu aplikací a jsou uloženy v mezipaměti kontejneru.

2. Warm Services: Singletony můžete přidat do pole „teplé“ v konfiguračním souboru oktanu, abyste se ujistili, že jsou vyřešeny a přetrvávají během bootstrappingu aplikací. Tímto způsobem budou tyto singletony k dispozici ve všech požadavcích.

Singletons, kteří nepřetrvávají

1. Singletony v manipulaci s žádostí: Singletony, které jsou vyřešeny během zpracování požadavků, nebudou přetrvávat. Jsou konstruovány na každém požadavku a nejsou uloženy v mezipaměti kontejneru.

2. Služby Flush: Pokud máte balíček, který registruje a vyřeší singleton uvnitř poskytovatele služeb a chcete tuto instanci vyplavit před každým požadavkem, můžete jej přidat do pole „Flush“ v konfiguračním souboru oktanu. Tím je zajištěno, že singleton je po manipulaci s každým požadavkem odstraněn z kontejneru.

osvědčené postupy

1. Použijte zpětné volání: Při registraci singletonů použijte zpětné volání namísto skutečné instance, abyste se ujistili, že jsou vyřešeny pouze jednou.

2. Vyvarujte se statických vlastností: Vyvarujte se používání statických vlastností ve vašich singletonech, protože mohou vést k úniku paměti a přetrvávat napříč požadavky.

3. Použijte konstanty: Pokud je to možné, použijte konstanty namísto statických vlastností, abyste zajistili neměnitelnost.

4. Instalace požadavku: Při řešení singletonů předejte zpětné volání, abyste zajistili správnou vyřešení instance požadavku.

5. Konfigurační úložiště: Použijte funkci pomocníku `config ()` namísto injekce úložiště konfigurace, abyste zajistili, že bude vyřešen správně.

Dodržováním těchto osvědčených postupů a pochopením toho, jak Octane zpracovává instance Singleton, můžete efektivně spravovat a rozlišovat mezi singletony, které přetrvávají, a těmi, které ve vaší aplikaci Laravel neběží na oktanu [2] [4] [5].

Citace:
[1] https://laracasts.com/discuss/channels/laravel/singletone-not-working-in-laravel
[2] https://divinglaravel.com/laravel-octane-bootstrapping-the-application-and-andring-requests
[3] https://grantwinney.com/difference-between-singleton-scoped-transied/
[4] https://betterprogramming.pub/the-wnesides-ot-coding-with-laravel-octan-17f4a7a4ea85?gi=d8afa3954408
[5] https://www.prismetric.com/laravel-octane/