MVC Μοτίβο σε XOOPS
XMF Απαιτείται 4.0.x Εγγενής
:::προσοχή[Διευκρίνιση: XOOPS Αρχιτεκτονική]
Το Standard XOOPS 2.5.x χρησιμοποιεί ένα μοτίβο Page Controller (ονομάζεται επίσης Σενάριο συναλλαγής), όχι MVC. Οι μονάδες παλαιού τύπου χρησιμοποιούν το index.php με άμεσες ενσωματώσεις, καθολικά αντικείμενα ($xoopsUser , $xoopsDB) και πρόσβαση δεδομένων βάσει χειριστή.
Για να χρησιμοποιήσετε το MVC στο XOOPS 2.5.x, χρειάζεστε το XMF Framework που παρέχει υποστήριξη δρομολόγησης και ελεγκτή.
XOOPS 4.0 θα υποστηρίζει εγγενώς το MVC με ενδιάμεσο λογισμικό PSR-15 και σωστή δρομολόγηση.
Δείτε επίσης: Τρέχουσα XOOPS Αρχιτεκτονική :::
Το μοτίβο Model-View-Controller (MVC) είναι ένα θεμελιώδες αρχιτεκτονικό μοτίβο για τον διαχωρισμό των προβληματισμών στις ενότητες XOOPS. Αυτό το μοτίβο χωρίζει μια εφαρμογή σε τρία διασυνδεδεμένα στοιχεία.
MVC Επεξήγηση
Ενότητα με τίτλο «MVC Επεξήγηση»# Μοντέλο
Ενότητα με τίτλο «# Μοντέλο»Το Μοντέλο αντιπροσωπεύει τα δεδομένα και την επιχειρηματική λογική της εφαρμογής σας. Αυτό:
- Διαχειρίζεται την επιμονή των δεδομένων
- Εφαρμόζει επιχειρηματικούς κανόνες
- Επικυρώνει δεδομένα
- Επικοινωνεί με τη βάση δεδομένων
- Είναι ανεξάρτητο από το UI
# Προβολή
Ενότητα με τίτλο «# Προβολή»Η Προβολή είναι υπεύθυνη για την παρουσίαση δεδομένων στον χρήστη. Αυτό:
- Αποδίδει πρότυπα HTML
- Εμφανίζει δεδομένα μοντέλου
- Χειρίζεται την παρουσίαση της διεπαφής χρήστη
- Στέλνει τις ενέργειες χρήστη στον ελεγκτή
- Πρέπει να περιέχει ελάχιστη λογική
# Ελεγκτής
Ενότητα με τίτλο «# Ελεγκτής»Ο Controller χειρίζεται τις αλληλεπιδράσεις και τις συντεταγμένες των χρηστών μεταξύ Μοντέλου και Προβολής. Αυτό:
- Λαμβάνει αιτήματα χρηστών
- Επεξεργάζεται δεδομένα εισόδου
- Καλεί μεθόδους μοντέλου
- Επιλέγει τις κατάλληλες προβολές
- Διαχειρίζεται τη ροή εφαρμογών
XOOPS Υλοποίηση
Ενότητα με τίτλο «XOOPS Υλοποίηση»Στο XOOPS, το μοτίβο MVC υλοποιείται χρησιμοποιώντας χειριστές και πρότυπα με τη μηχανή Smarty να παρέχει υποστήριξη προτύπων.
# Βασική Δομή Μοντέλου
Ενότητα με τίτλο «# Βασική Δομή Μοντέλου»<?phpclass UserModel{ private $db;
public function getUserById($id) { // Database query implementation }
public function createUser($data) { // Create user implementation }}?># Υλοποίηση ελεγκτή
Ενότητα με τίτλο «# Υλοποίηση ελεγκτή»<?phpclass UserController{ private $model;
public function listAction() { $users = $this->model->getAllUsers(); return ['users' => $users]; }}?># Προβολή προτύπου
Ενότητα με τίτλο «# Προβολή προτύπου»{foreach from=$users item=user} <div>{$user.username|escape}</div>{/foreach}Βέλτιστες πρακτικές
Ενότητα με τίτλο «Βέλτιστες πρακτικές»- Διατηρήστε την επιχειρηματική λογική στα Μοντέλα
- Διατήρηση της παρουσίασης στις Προβολές
- Διατηρήστε το routing/coordination στους ελεγκτές
- Μην ανακατεύετε τις ανησυχίες μεταξύ των επιπέδων
- Επικύρωση όλων των εισόδων σε επίπεδο Ελεγκτή
Σχετική τεκμηρίωση
Ενότητα με τίτλο «Σχετική τεκμηρίωση»Δείτε επίσης:
- Repository-Pattern για προηγμένη πρόσβαση σε δεδομένα
- Service-Layer για αφαίρεση επιχειρησιακής λογικής
- Code-Organization για τη δομή του έργου
- Testing για MVC στρατηγικές δοκιμών
Ετικέτες: #mvc #patterns #architecture #module-development #design-patterns