Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kalıcı ve oktanda olmayan singletonlar arasında nasıl ayrım yaparım?


Kalıcı ve oktanda olmayan singletonlar arasında nasıl ayrım yaparım?


Kalan ve Laravel Octan'da olmayan singletonları ayırt etmek için, Octane'nin Singleton örneklerini nasıl ele aldığını ve bunların nasıl çözüldüğünü anlamanız gerekir. İşte dikkate alınması gereken kilit noktalar:

Sözen Singletons

1. Servis Sağlayıcılardaki Singletons: Servis sağlayıcılarının içinde, özellikle `boot` veya` `kayıt 'yöntemlerinde çözülen singletonlar, talepler arasında devam edecektir. Bunun nedeni, bu singletonların uygulama önyükleme sırasında çözülmesi ve konteyner önbelleğinde saklanmasıdır.

2. Sıcak Hizmetler: Uygulama önyükleme sırasında çözüldüklerinden ve devam ettiklerinden emin olmak için oktan yapılandırma dosyasındaki `` sıcak '' dizisine singletonlar ekleyebilirsiniz. Bu şekilde, bu singletonlar tüm taleplerde mevcut olacak.

ısrar etmeyen singletonlar

1. Talep kullanımındaki singletonlar: Talep kullanımı sırasında çözülen singletonlar devam etmeyecektir. Her istek üzerine inşa edilirler ve konteyner önbelleğinde saklanmazlar.

2. Flush Services: Bir servis sağlayıcısının içinde bir singleton kaydeden ve çözen bir paketiniz varsa ve her istekden önce bu örneği temizlemek istiyorsanız, Octane yapılandırma dosyasındaki `` yıkama '' dizisine ekleyebilirsiniz. Bu, her bir isteği kullandıktan sonra singletonun kaptan çıkarılmasını sağlar.

En İyi Uygulamalar

1. Geri arama kullanın: Singletons kaydederken, yalnızca bir kez çözüldüğünden emin olmak için gerçek örnek yerine geri arama kullanın.

2. Statik özelliklerden kaçının: Singletonlarınızda statik özellikler kullanmaktan kaçının, çünkü bellek sızıntılarına yol açabilir ve istekler arasında devam edebilirler.

3. Sabitleri kullanın: Değişmezliği sağlamak için mümkün olduğunda statik özellikler yerine sabitler kullanın.

4. İstek Örneği: Singletons'u çözerken, istek örneğinin doğru şekilde çözüldüğünden emin olmak için bir geri arama geçirin.

5. Yapılandırma deposu: Düzgün çözüldüğünden emin olmak için yapılandırma deposunu enjekte etmek yerine `config ()` yardımcı işlevini kullanın.

Bu en iyi uygulamaları izleyerek ve Octane'nin Singleton örneklerini nasıl ele aldığını anlayarak, devam eden singletonları ve Octan'da çalışan Laravel uygulamanızda olmayanlar arasında etkili bir şekilde yönetebilir ve ayırt edebilirsiniz [2] [4] [5].

Alıntılar:
[1] https://laracasts.com/discuss/channels/laravel/singleton-not-woring-in-laravel
[2] https://divinglaravel.com/laravel-octan-bootstrapping-the-pplication- and-handling-equests
[3] https://grantwinney.com/Difference-beton-singleton-scoped-transient/
[4] https://betterprogramming.pub/the-downsides-ofoding-with-lavavel-octan-17f4a7a4ea85?gi=d8afa3954408
[5] https://www.prismetric.com/laravel-octan/