Μετάβαση στο περιεχόμενο

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. Αυτό το μοτίβο χωρίζει μια εφαρμογή σε τρία διασυνδεδεμένα στοιχεία.

Το Μοντέλο αντιπροσωπεύει τα δεδομένα και την επιχειρηματική λογική της εφαρμογής σας. Αυτό:

  • Διαχειρίζεται την επιμονή των δεδομένων
  • Εφαρμόζει επιχειρηματικούς κανόνες
  • Επικυρώνει δεδομένα
  • Επικοινωνεί με τη βάση δεδομένων
  • Είναι ανεξάρτητο από το UI

Η Προβολή είναι υπεύθυνη για την παρουσίαση δεδομένων στον χρήστη. Αυτό:

  • Αποδίδει πρότυπα HTML
  • Εμφανίζει δεδομένα μοντέλου
  • Χειρίζεται την παρουσίαση της διεπαφής χρήστη
  • Στέλνει τις ενέργειες χρήστη στον ελεγκτή
  • Πρέπει να περιέχει ελάχιστη λογική

Ο Controller χειρίζεται τις αλληλεπιδράσεις και τις συντεταγμένες των χρηστών μεταξύ Μοντέλου και Προβολής. Αυτό:

  • Λαμβάνει αιτήματα χρηστών
  • Επεξεργάζεται δεδομένα εισόδου
  • Καλεί μεθόδους μοντέλου
  • Επιλέγει τις κατάλληλες προβολές
  • Διαχειρίζεται τη ροή εφαρμογών

Στο XOOPS, το μοτίβο MVC υλοποιείται χρησιμοποιώντας χειριστές και πρότυπα με τη μηχανή Smarty να παρέχει υποστήριξη προτύπων.

<?php
class UserModel
{
private $db;
public function getUserById($id)
{
// Database query implementation
}
public function createUser($data)
{
// Create user implementation
}
}
?>
<?php
class 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