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

Αρχιτεκτονική Symfony

Bundles

Το Chamilo 2.0 δομείται σε τρία bundles του Symfony:

CoreBundle (src/CoreBundle/)

Το μεγαλύτερο bundle, που διαχειρίζεται όλες τις πλατφορμικές ανησυχίες:

  • Χρήστες και εμπιστοσύνη — Οντότητα χρήστη, ρόλοι, JWT tokens, πάροχοι OAuth2

  • Σύστημα πόρων — ResourceNode και ResourceFile (η ενιαία αφαίρεση περιεχομένου)

  • Ρυθμίσεις πλατφόρμας — Σχήματα ρυθμίσεων στο src/CoreBundle/Settings/ που καλύπτουν κάθε ρυθμιζόμενη πτυχή

  • Διαχείριση — Controllers διαχειριστή για χρήστες, μαθήματα, συνεδρίες και plugins

  • Πάροχοι ΤΝ — Factory pattern για OpenAI, Gemini, Mistral, DeepSeek, Grok

  • Αποθήκευση αρχείων — Adapters αποθήκευσης βασισμένοι στο Flysystem (τοπική, S3, Azure, GCS)

  • Ασφάλεια — Voters, έλεγχος πρόσβασης, ιεραρχία ρόλων

  • Εργαλεία — Ορισμοί εργαλείων μαθήματος που καταχωρούνται μέσω του συστήματος εργαλείων

CourseBundle (src/CourseBundle/)

Όλα τα ειδικά για το περιεχόμενο μαθήματος:

  • Οντότητες περιεχομένου — 101 οντότητες για έγγραφα, ασκήσεις, μονοπάτια μάθησης, φόρουμ, γλωσσάρια, έρευνες, παρουσίες, blogs, εργασίες και άλλα

  • Αντιγραφή μαθήματος — Εισαγωγή/εξαγωγή με υποστήριξη Common Cartridge 1.3 και μορφή Moodle

  • Ρυθμίσεις μαθήματος — Σχήματα ρυθμίσεων επιπέδου μαθήματος

LtiBundle (src/LtiBundle/)

Εφαρμογή του προτύπου LTI 1.3:

  • Εγγραφή πλατφόρμας και εργαλείου — Διαχείριση συνδέσεων εξωτερικών εργαλείων

  • Διαχείριση εκκίνησης — Controllers ροής εκκίνησης LTI

  • Επιστροφή βαθμών — Επιστροφή βαθμών από εξωτερικά εργαλεία στο Chamilo

Container Υπηρεσιών

Το Chamilo χρησιμοποιεί το container έγχυσης εξαρτήσεων του Symfony. Οι υπηρεσίες ρυθμίζονται σε:

  • config/services.yaml — Παγκόσμιοι ορισμοί υπηρεσιών

  • Τον κατάλογο DependencyInjection/ κάθε bundle — Υπηρεσίες ειδικές για το bundle

Αρχιτεκτονική Ασφαλείας

Το σύστημα ασφαλείας ρυθμίζεται στο config/packages/security.yaml:

  • Hashing κωδικών πρόσβασης — Υποστηρίζει 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) υπολογίζονται ανά αίτημα βάσει εγγραφής

  • Firewall — JWT εμπιστοσύνη για API, βασισμένη σε συνεδρία για την web διεπαφή

  • Voters — Έλεγχος πρόσβασης επιπέδου πόρου μέσω Symfony voters

Κώδικας Κληρονομιάς

Μερικά χαρακτηριστικά εξακολουθούν να χρησιμοποιούν παλαιό κώδικα PHP στο public/main/:

  • Απόδοση και αλληλεπίδραση ασκήσεων

  • Player μονοπατιού μάθησης

  • Μερικά εργαλεία διαχειριστή

Αυτά μεταφέρονται σταδιακά στην αρχιτεκτονική Symfony+Vue. Οι παλαιές σελίδες σερβίρονται μέσω ενός επιπέδου συμβατότητας που φορτώνει τον πυρήνα του Symfony.

Τελευταία ενημέρωση

Ήταν χρήσιμο αυτό;