نظام المتجر - الوصف أدناه غير محدث، ويجري إعادة بناء المشروع
معلومات عامة
- يتم استخدام العديد من الأدوات لتسهيل إنشاء تعليمات برمجية قوية: phpstan (المستوى 6)، deptrac، codesniffer.
- تم اختبار التطبيق جيدًا، حيث تم تصنيف الاختبارات إلى اختبارات التطبيق (E2E)، والتكامل، واختبارات الوحدة.
- تم تنفيذ نظام التخزين المؤقت على أساس Redis.
الحلول التقنية
- يتم تنظيم الدلائل في /Module، الذي يحتوي على أدلة فرعية لجميع الوحدات، و/Shared، والذي يتضمن المكونات المشتركة عبر جميع الوحدات. تشتمل كل وحدة [الطلب، المنتج، المستخدم] على أربعة أدلة:
- التطبيق -> يضم تنفيذ منطق التطبيق
- المجال -> يحتوي على أشياء تتعلق بشكل صارم بمعلومات الأعمال - الكيانات والتعدادات وواجهات المستودعات
- البنية التحتية -> تتضمن المكونات المتعلقة بالطبقة التقنية، مثل قاعدة البيانات ونظام التخزين المؤقت
- واجهة المستخدم -> تحتوي على أوامر وحدة التحكم أو وحدات التحكم التي تعمل كحلقة وصل بين المستخدم والنظام
- يتم تصنيف الإجراءات إلى أوامر واستعلامات. لقد قمت بتنفيذ حل مخصص لتخزين المعلومات بعد الانتهاء من الإجراءات. يقوم كل أمر بإرجاع CommandResult، بينما تقوم الاستعلامات بإرجاع QueryResult، الذي يحتوي على معلومات حول النجاح ورموز الحالة والبيانات المستردة.
- يتم تنفيذ المصادقة باستخدام نهج JWT مع LexikJWTAuthenticationBundle.
- يتم استخدام مصادر الأحداث لتخزين معلومات حول الحالة الحالية للطلب. تشير آخر حالة أمر تم إنشاؤه إلى حالته الحالية.
قاعدة البيانات
مستندات API
بناء
الوحدة النمطية
الأوامر باستخدام Make
التهيئة للتشغيل لأول مرة
تشغيل ملف تعريف التطوير
إسقاط عمليات الترحيل وترحيل وتحميل التركيبات
make drop_migrations
make migrate
make load_fixtures
تشغيل كافة الاختبارات
أوامر بدون صنع
التهيئة للتشغيل لأول مرة
docker-compose up --profile dev -d
docker-compose exec php bin/console doctrine:migrations:diff
docker-compose exec php bin/console doctrine:migrations:migrate
docker-compose exec php bin/console lexik:jwt:generate-keypair
بالنسبة للأوامر الأخرى، تحقق من محتوى Makefile
وثائق واجهة برمجة التطبيقات
وثائق API متاحة على