للتمييز بين المفردات التي تستمر وتلك التي لا تستمر في Laravel Octane، تحتاج إلى فهم كيفية تعامل Octane مع المثيلات المفردة وكيفية حلها. فيما يلي النقاط الرئيسية التي يجب مراعاتها:
الأغاني المنفردة التي تستمر
1. المفردات في موفري الخدمة: المفردات التي يتم حلها داخل موفري الخدمة، وتحديدًا في أساليب `التمهيد` أو `التسجيل`، ستستمر عبر الطلبات. وذلك لأنه يتم حل هذه المفردات أثناء تمهيد التطبيق ويتم تخزينها في ذاكرة التخزين المؤقت للحاوية.
2. الخدمات الدافئة: يمكنك إضافة نغمات مفردة إلى المصفوفة "الدافئة" في ملف تكوين Octane لضمان حلها واستمرارها أثناء تمهيد التطبيق. بهذه الطريقة، ستكون هذه الأغاني الفردية متاحة لجميع الطلبات.
المفردات التي لا تستمر
1. المفردات في معالجة الطلب: لن تستمر المفردات التي يتم حلها أثناء معالجة الطلب. يتم إنشاؤها بناءً على كل طلب ولا يتم تخزينها في ذاكرة التخزين المؤقت للحاوية.
2. خدمات التدفق: إذا كان لديك حزمة تسجل وتحل حالة مفردة داخل مزود الخدمة وتريد مسح هذا المثيل قبل كل طلب، فيمكنك إضافته إلى مصفوفة `التدفق` في ملف تكوين Octane . وهذا يضمن إزالة المفردة من الحاوية بعد معالجة كل طلب.
أفضل الممارسات
1. استخدام عمليات الاسترجاعات: عند تسجيل الأغاني الفردية، استخدم عمليات الاسترجاعات بدلاً من المثيل الفعلي لضمان حلها مرة واحدة فقط.
2. تجنب الخصائص الثابتة: تجنب استخدام الخصائص الثابتة في المفردات الخاصة بك لأنها يمكن أن تؤدي إلى تسرب الذاكرة واستمرارها عبر الطلبات.
3. استخدم الثوابت: استخدم الثوابت بدلاً من الخصائص الثابتة عندما يكون ذلك ممكنًا لضمان الثبات.
4. طلب مثيل: عند حل المفردات، قم بتمرير رد اتصال لضمان حل مثيل الطلب بشكل صحيح.
5. مستودع التكوين: استخدم الوظيفة المساعدة `config()` بدلاً من إدخال مستودع التكوين لضمان حل المشكلة بشكل صحيح.
من خلال اتباع أفضل الممارسات هذه وفهم كيفية تعامل Octane مع الحالات الفردية، يمكنك الإدارة والتمييز بشكل فعال بين الحالات الفردية التي تستمر وتلك التي لا تستمر في تطبيق Laravel الخاص بك الذي يعمل على Octane[2] [4] [5].
الاستشهادات:[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/