For the complete documentation index, see llms.txt. This page is also available as Markdown.

Symfony Architecture

الحزم Bundles

يُقسم Chamilo 2.0 إلى ثلاث حزم Symfony:

CoreBundle (src/CoreBundle/)

أكبر حزمة، تتعامل مع جميع الاهتمامات على مستوى المنصة:

  • المستخدمون والمصادقة — كيان المستخدم، الأدوار، رموز JWT، مزودي OAuth2

  • نظام الموارد — ResourceNode و ResourceFile (التجريد الموحد للمحتوى)

  • إعدادات المنصة — مخططات الإعدادات في src/CoreBundle/Settings/ تغطي كل جانب قابل للتكوين

  • الإدارة — وحدات تحكم الإدارة للمستخدمين، والدورات، والجلسات، وإدارة الإضافات

  • مزودو الذكاء الاصطناعي — نمط المصنع لـ OpenAI، Gemini، Mistral، DeepSeek، Grok

  • تخزين الملفات — محولات تخزين قائمة على Flysystem (محلي، S3، Azure، GCS)

  • الأمان — الناخبون، التحكم في الوصول، تسلسل الأدوار

  • الأدوات — تعريفات أدوات الدورة المسجلة من خلال نظام الأدوات

CourseBundle (src/CourseBundle/)

كل ما يتعلق بمحتوى الدورة تحديدًا:

  • كيانات المحتوى — 101 كيان للوثائق، والتمارين، ومسارات التعلم، والمنتديات، والمصطلحات، والاستطلاعات، والحضور، والمدونات، والمهام، وأكثر

  • نسخ الدورة — الاستيراد/التصدير مع دعم Common Cartridge 1.3 وصيغة Moodle

  • إعدادات الدورة — مخططات الإعدادات على مستوى الدورة

LtiBundle (src/LtiBundle/)

تنفيذ معيار LTI 1.3:

  • تسجيل المنصة والأداة — إدارة اتصالات الأدوات الخارجية

  • معالجة الإطلاق — وحدات تحكم تدفق إطلاق LTI

  • إرجاع الدرجات — إرجاع الدرجات من الأدوات الخارجية إلى Chamilo

حاوية الخدمات Service Container

يستخدم Chamilo حاوية حقن التبعيات في Symfony. يتم تكوين الخدمات في:

  • config/services.yaml — تعريفات الخدمات العالمية

  • دليل DependencyInjection/ لكل حزمة — خدمات خاصة بالحزمة

هندسة الأمان Security Architecture

يتم تكوين نظام الأمان في config/packages/security.yaml:

  • تجزئة كلمات المرور — يدعم bcrypt (افتراضي)، مع الهجرة من SHA1 و MD5 القديمين

  • تسلسل الأدوار — 18 دورًا منظمة هرميًا (ROLE_GLOBAL_ADMIN > ROLE_ADMIN > ROLE_TEACHER > ROLE_STUDENT > ROLE_USER؛ أدوار إضافية تشمل ROLE_HR، ROLE_INVITEE، ROLE_STUDENT_BOSS، ROLE_SESSION_MANAGER، ROLE_QUESTION_MANAGER)

  • أدوار حساسة للسياق — أدوار على مستوى الدورة (ROLE_CURRENT_COURSE_TEACHER، ROLE_CURRENT_COURSE_STUDENT) يتم حسابها لكل طلب بناءً على التسجيل

  • جدار الحماية — مصادقة JWT لـ API، قائمة على الجلسة للواجهة الويبية

  • الناخبون — التحكم في الوصول على مستوى المورد من خلال ناخبي Symfony

الكود القديم Legacy Code

بعض الميزات لا تزال تستخدم كود PHP القديم في public/main/:

  • عرض التمارين وتفاعلها

  • مشغل مسار التعلم

  • بعض أدوات الإدارة

يتم نقل هذه تدريجيًا إلى هندسة Symfony+Vue. يتم تقديم الصفحات القديمة من خلال طبقة توافق تبدأ نواة Symfony.

آخر تحديث

هل كان هذا مفيدا؟