Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Bagaimana cara membedakan antara singleton yang bertahan dan yang tidak dalam oktan


Bagaimana cara membedakan antara singleton yang bertahan dan yang tidak dalam oktan


Untuk membedakan antara singleton yang bertahan dan mereka yang tidak berada di Laravel Octane, Anda perlu memahami bagaimana oktan menangani instance singleton dan bagaimana mereka diselesaikan. Berikut adalah poin utama yang perlu dipertimbangkan:

singleton yang bertahan

1. Singletons dalam penyedia layanan: Singleton yang diselesaikan di dalam penyedia layanan, khususnya dalam metode `boot` atau` register`, akan bertahan di seluruh permintaan. Ini karena singleton ini diselesaikan selama bootstrap aplikasi dan disimpan dalam cache kontainer.

2. Layanan Hangat: Anda dapat menambahkan singleton ke array `hangat` dalam file konfigurasi oktan untuk memastikan mereka diselesaikan dan bertahan selama bootstrap aplikasi. Dengan cara ini, singleton ini akan tersedia di semua permintaan.

singleton yang tidak bertahan

1. Singletons dalam Penanganan Permintaan: Singleton yang diselesaikan selama penanganan permintaan tidak akan bertahan. Mereka dibangun berdasarkan setiap permintaan dan tidak disimpan dalam cache kontainer.

2. Layanan Flush: Jika Anda memiliki paket yang mendaftarkan dan menyelesaikan singleton di dalam penyedia layanan dan Anda ingin menyiram contoh itu sebelum setiap permintaan, Anda dapat menambahkannya ke array `flush` dalam file konfigurasi oktan. Ini memastikan bahwa singleton dihapus dari wadah setelah menangani setiap permintaan.

Praktik terbaik

1. Gunakan Callbacks: Saat mendaftarkan singleton, gunakan panggilan balik alih -alih contoh yang sebenarnya untuk memastikan mereka diselesaikan hanya sekali.

2. Hindari sifat statis: Hindari menggunakan sifat statis di singleton Anda karena dapat menyebabkan kebocoran memori dan bertahan di seluruh permintaan.

3. Gunakan konstanta: Gunakan konstanta alih -alih sifat statis bila memungkinkan untuk memastikan kekekalan.

4. Instance Permintaan: Saat menyelesaikan singleton, lulus panggilan balik untuk memastikan instance permintaan diselesaikan dengan benar.

5. Repositori Konfigurasi: Gunakan fungsi `config ()` helper alih -alih menyuntikkan repositori konfigurasi untuk memastikannya diselesaikan dengan benar.

Dengan mengikuti praktik terbaik ini dan memahami bagaimana oktan menangani instance singleton, Anda dapat secara efektif mengelola dan membedakan antara singleton yang bertahan dan yang tidak ada dalam aplikasi Laravel Anda berjalan pada oktan [2] [4] [5].

Kutipan:
[1] https://laracasts.com/discuss/channels/laravel/singletone-not-working-in-laravel
[2] https://divinglaravel.com/laravel-octane-bootstrapping-the-phapplication-and-handling-ruests
[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/