Αρχιτεκτονική Symfony
Bundles
Το Chamilo 2.0 δομείται σε τρία bundles του Symfony:
CoreBundle (src/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/)
src/CourseBundle/)Όλα τα ειδικά για το περιεχόμενο μαθήματος:
Οντότητες περιεχομένου — 101 οντότητες για έγγραφα, ασκήσεις, μονοπάτια μάθησης, φόρουμ, γλωσσάρια, έρευνες, παρουσίες, blogs, εργασίες και άλλα
Αντιγραφή μαθήματος — Εισαγωγή/εξαγωγή με υποστήριξη Common Cartridge 1.3 και μορφή Moodle
Ρυθμίσεις μαθήματος — Σχήματα ρυθμίσεων επιπέδου μαθήματος
LtiBundle (src/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.
Τελευταία ενημέρωση
Ήταν χρήσιμο αυτό;