حقن التبعيات في PHP
Гайд по DI-контейнерам и чистому коду
ملخص:
مقدمة
كتاب «PHP Dependency Injection» (المؤلف — Sam Yong، عام 2019، 176 صفحة) — هو دليل مضغوط ولكن شامل لأحد المبادئ الأساسية في التطوير الحديث بلغة PHP. يشكل حقن التبعيات (Dependency Injection، DI) أساس أطر العمل Symfony و Laravel و Yii2 والعديد من الأطر الأخرى. بدون فهم DI، من المستحيل كتابة كود قابل للاختبار ومرن وقابل للصيانة. كتاب Yong لا يشرح النظرية فقط — بل يقود القارئ من الأمثلة البسيطة إلى إنشاء حاوية DI الخاصة به والتكامل مع المكتبات الشائعة.
عن ماذا يتحدث الكتاب
يتكون الإصدار من 10 فصول، كل فصل مخصص لجانب معين من DI. يبدأ المؤلف بالمفاهيم الأساسية: ما هو التبعية، ولماذا الاقتران القوي (coupling) هو شر، وكيف يحل انعكاس التحكم (IoC) هذه المشكلة. ثم يتم شرح ما يلي بالتسلسل:
- حقن التبعيات يدويًا عبر المنشئ (constructor) والمحددات (setters) والواجهات (interfaces)؛
- حاويات حقن التبعيات: هيكلها، تسجيل الخدمات، حل التبعيات؛
- معيار PSR-11 (Container Interface) وتنفيذه؛
- التقنيات المتقدمة: الحل التلقائي (autowiring)، المصانع (factories)، الديكورات (decorators)، وضع علامات على الخدمات (tagging services)؛
- دمج DI مع أطر PHP الشائعة (Symfony، Laravel، Zend Framework)؛
- اختبار الكود باستخدام DI: الكائنات الوهمية (mocks)، الكائنات البديلة (stubs)، حاويات الاختبار؛
- إعادة هيكلة (refactoring) الكود القديم (legacy) باستخدام DI.
يحتوي كل فصل على أمثلة عملية للكود، والتي