كيف يعمل مقدمو الخدمة وحاويات الخدمة باستخدام Laravel؟
نشرت: 2022-09-16قد يكون التعامل مع Laravel صعبًا في بعض الأحيان حتى بالنسبة للمطورين ذوي الخبرة حيث يصعب فهم الوظيفة الأساسية. لكن في الواقع ، تطوير الويب مثير للاهتمام.
تتمثل إحدى الوظائف في مزودي الخدمة ، حيث سأقدم نظرة عامة مفصلة في هذه المدونة. سأشرح أيضًا كيف تعمل حاوية الخدمة في Laravel في هذه المدونة.
هذه أبسط مما قد تتخيله. بعد قولي هذا ، دعنا ندخله مباشرة.
من هم مقدمو الخدمات في Laravel؟
يعمل مقدمو الخدمات في تطبيق Laravel كنقطة أساسية يتم من خلالها تمهيد التطبيق. نتيجة لذلك ، يتم استخدام مقدمي الخدمات لإدخال خدمات Laravel الأساسية في حاوية الخدمة بالإضافة إلى خدمات تطبيقنا وفئاته وتبعياتهم في حاوية الخدمة.
يمكن العثور على الموفر لهذا المثال في الملف config / app.php كمصفوفة باسم "Provider". الرجوع إلى الصورة أدناه:
لنفترض أنك تريد استخدام أي مزود خدمات تابع لجهة خارجية ، فحينئذٍ يتعين عليك تقديم طلب في تكوين مصفوفة مزود الخدمة.
يمكنك رؤية بعض مزودي الخدمة هناك بالفعل يقومون بتشغيل التطبيق بالكامل ، على سبيل المثال ، المصادقة ، وهو أمر مطلوب للمصادقة على التطبيق.
كيفية إنشاء مقدمي الخدمات في Laravel؟
لاستخدام مزود خدمة ، يجب عليك أولاً إنشاء واحد. نتيجة لذلك ، سنقوم بإنشاء مزود خدمة الآن. يمكنك استخدام الأمر الموضح أدناه لإنشاء أي مزود خدمة تحتاجه.
صنع الحرفي php: مزود MyServiceProvider
عند تشغيل الأمر ، سيتم إنشاء مزود خدمة في التطبيق الخاص بك ، والذي يمكنك استخدامه بعد ذلك.
بعد ذلك ، افتح التطبيق الخاص بك وانتقل إلى مجلد الموفرين ، حيث ستحدد موقع مزود الخدمة الخاص بك.
هنا سترى طريقتين ، التسجيل () والتمهيد ().
طريقة التسجيل ()
من المهم جدًا معرفة حقيقة أن طريقة register () تسمح لنا بتحديد الارتباطات بحاوية الخدمة الخاصة بنا. على سبيل المثال ، انظر الرمز أدناه:
$ this-> app هو متغير عالمي في Laravel يمكنه الوصول إلى فئة فردية من خلال التطبيق.
سينجلتون هي سمة. عندما تقوم بتطبيق هذه السمة ، فأنت تخبر التطبيق أنه يجب أن تحتوي أي فئة يتم إرسالها كمعامل في التطبيق على نسخة مكررة واحدة فقط (مثيل) عبر التطبيق. هذا يعني أنه سيتم حل MyClass مرة واحدة وسيكون له مثيل واحد فقط ، والذي يمكن الوصول إليه باستخدام متغير my_class.
طريقة التمهيد ()
تسمح لك طريقة boot () بالوصول إلى جميع الخدمات التي تم تسجيلها مسبقًا باستخدام طريقة register. يمكنك بالتالي تضمين الخدمة بأكملها في تطبيقك باستخدام هذه الطريقة.
كيف تسجل مقدم خدمة؟
نظرًا لأنك قمت الآن ببناء مزود الخدمة الخاص بك ، فستحتاج إلى تسجيله في ملف التكوين الخاص بك لإكمال العملية. يجب التسجيل هنا بالطريقة الموضحة في الصورة أدناه:

سيتم تحميل جميع مزودي الخدمة أولاً في كل مرة يتم فيها تشغيل التطبيق. مقدمو الخدمات هم المكان المركزي الرئيسي لتطبيقات Laravel ، وهم متواجدون دائمًا لمساعدتك في تشغيل التطبيق الكامل ، كما تمت مناقشته سابقًا في هذه المدونة.
ما هي حاويات الخدمة في Laravel؟
تُعد Service Container آلية قوية تسمح لنا بتخزين جميع الارتباطات اللازمة لتنفيذ تطبيق Laravel على خادم واحد.
قد يتم ربط كل شيء في التطبيق بمساعدة حاوية الخدمة.
كيفية استخدام حاوية الخدمة في Laravel؟
ضع في اعتبارك السيناريو التالي: لدينا فئة تسمى MathService مسؤولة عن القيام ببعض العمليات الأساسية مثل الجمع والضرب وما إلى ذلك. يتم توفير رمز هذه الفئة أدناه.
كما ترى أعلاه ، هناك طريقتان لحساب مجموع مصفوفة الأرقام باستخدام دالة مجموع الصفيف وضرب جميع الأرقام المقدمة كمصفوفة باستخدام دالة حاصل الضرب الصفيف.
تحسب دالة مجموع المصفوفة مجموع مصفوفة الأرقام باستخدام دالة مجموع المصفوفة ، بينما تضرب دالة حاصل الضرب في المصفوفة جميع الأرقام المتوفرة كمصفوفة.
من أجل استخدام مزود الخدمة ، يجب علينا أولاً ربط الخدمة بحاوية الخدمة.
ومع ذلك ، من خلال القيام بذلك ، فإننا نوجه Laravel للاحتفاظ بحاوية MathService في الحاوية باسم MathService وإعادتها كلما احتجنا إلى مثيل من فئة. يعد هذا ارتباطًا لفئة لمرة واحدة ، ويمكن استخدامه للحصول على أي عدد من المثيلات من برنامجنا.
كما ذكرنا سابقًا ، تعتبر حاويات الخدمة ومقدموها مكونات مهمة في كل تطبيق Laravel. كما ذكرنا سابقًا ، قد نصمم مزودي الخدمة الفريدين الخاصين بنا أو يمكننا دمج موفري خدمات تابعين لجهات خارجية في تطبيقاتنا.
على سبيل المثال ، إذا كنت تريد استخدام Socialite في Laravel ، يمكنك فقط نسخه ولصقه في ملف مزود خدمة التطبيق واستخدامه في أي مكان في التطبيق الخاص بك.
تلخيصها
عند تكوين التطبيق الخاص بك ، يتم الاستعانة بمزودي الخدمة. بالإضافة إلى روابط حاوية الخدمة ، يتم أيضًا تسجيل عناصر رئيسية أخرى مثل المسارات والبرمجيات الوسيطة ومستمعي الأحداث في هذا القسم من ملف التكوين.
يتم تنفيذ مزودي الخدمة قبل معالجة الطلب نفسه ، مما يضمن أن كل ما تريده في مكانه وإعداده قبل معالجة الطلب بواسطة النظام. يتم تنفيذ بعض مزودي الخدمة على أساس منتظم بينما يتم تنفيذ مقدمي الخدمات الآخرين فقط عندما يكونون مطلوبين ("مقدمي الخدمات المتأخرين").
عند استخدام حاوية خدمة ، يمكنك استخدامها لحقن التبعية (على سبيل المثال ، إدخال المعلمة في فئات وحدة التحكم الخاصة بك) بالإضافة إلى فئات الربط والحل (مثل الفئة التي سيتم إنشاء مثيل لها لعقد معين).
يمكن أن يكون تطوير الويب عملية صعبة. هذا هو السبب في أن webdew لديه فريق من مطوري الويب المهرة للمساعدة في جعل مواقع الويب والتطبيقات وتسهيل الأمور عليك.
هل تحتاج إلى مساعدة في تصميم الويب وتطوير الويب؟ ابق على تواصل معنا!
المحرر: عمروثا