Τι είναι το MVC;
Πρότυπα MVC για Μοντέλο-View-Control. Είναι ένα αρχιτεκτονικό σχέδιο που χωρίζει την εφαρμογή σε τρία βασικά στοιχεία.
1. Το μοντέλο ασχολείται με την επιχειρηματική λογική και τις αλληλεπιδράσεις βάσης δεδομένων
2. Ο ελεγκτής συντονίζει τις δραστηριότητες μεταξύ του μοντέλου και της προβολής
3. Η προβολή είναι υπεύθυνη για την παρουσίαση δεδομένων
Τα παρακάτω είναι μερικά από τα πλεονεκτήματα του αρχιτεκτονικού σχεδίου MVC
- Χαλαρή σύζευξη - τα εξαρτήματα υπάρχουν και λειτουργούν ανεξάρτητα το ένα από το άλλο.
- Ευελιξία - μπορεί κανείς να κάνει εύκολα αλλαγές σε μεμονωμένα στοιχεία
- Αυξημένη παραγωγικότητα - περισσότερα από ένα άτομα μπορούν να εργαστούν ταυτόχρονα στο έργο. Οι προγραμματιστές front-end μπορούν να εργαστούν σε προβολές και παρουσίαση, ενώ οι προγραμματιστές backend μπορούν να επικεντρωθούν σε μοντέλα και δεδομένου ότι το σύστημα είναι χαλαρά συνδεδεμένο, λειτουργεί στο τέλος της ημέρας
Σε αυτό το σεμινάριο, θα μάθετε:
- Τι είναι το MVC;
- Μοντέλο
- Ελεγκτής
- Θέα
- Πώς λειτουργούν τα πλαίσια MVC;
- Ελεγκτής CodeIgniter
- Μοντέλο CodeIgniter
Μοντέλο
Το μοντέλο είναι υπεύθυνο για την αλληλεπίδραση με πηγές δεδομένων. Αυτή είναι συνήθως μια βάση δεδομένων, αλλά μπορεί επίσης να είναι μια υπηρεσία που παρέχει τα ζητούμενα δεδομένα. Είναι επίσης μια κοινή πρακτική να περιλαμβάνεται η επιχειρηματική λογική στα μοντέλα σε αντίθεση με τον ελεγκτή. Αυτή η πρακτική ονομάζεται συνήθως κοκαλιάρικος ελεγκτής λίπους.
Το μοντέλο γράφει συνήθως δεδομένα στη βάση δεδομένων, παρέχει έναν μηχανισμό επεξεργασίας και ενημέρωσης και διαγραφής δεδομένων. Σε μια σύγχρονη εφαρμογή ιστού, τα μοντέλα χρησιμοποιούν μοτίβα σχεδιασμού πρόσβασης δεδομένων, όπως ενεργή εγγραφή, για να διευκολύνουν την αλληλεπίδραση με τη βάση δεδομένων.
Για παράδειγμα, το CodeIgniter χρησιμοποιεί μια ενσωματωμένη βιβλιοθήκη Active Record για να βοηθήσει τα μοντέλα, ενώ άλλα πλαίσια όπως το Laravel χρησιμοποιούν το Eloquent Object Relational Mapper (ORM) που βοηθά στην πρόσβαση στα δεδομένα.
Ελεγκτής
Ο ελεγκτής ακούει εισερχόμενα αιτήματα πόρων από τους χρήστες. Λειτουργεί ως το ενδιάμεσο μεταξύ του μοντέλου και της προβολής και μερικές φορές εφαρμόζει επίσης ορισμένους επιχειρηματικούς κανόνες. Ας υποθέσουμε ότι ο ελεγκτής λαμβάνει ένα αίτημα για εγγραφή ενός χρήστη στη βάση δεδομένων.
Ο υπεύθυνος επεξεργασίας μπορεί να πραγματοποιήσει επικύρωση δεδομένων για όσα έχουν υποβληθεί για να διασφαλίσει ότι έχουν υποβληθεί όλες οι απαιτούμενες παράμετροι. Εάν λείπει κάτι, ο χρήστης ανακατευθύνεται στη σελίδα εγγραφής με το κατάλληλο μήνυμα σφάλματος. Ο ελεγκτής μπορεί επίσης να ζητήσει από το μοντέλο να εκτελέσει περισσότερη επικύρωση ελέγχοντας εάν υπάρχει ήδη η υποβληθείσα διεύθυνση email. Εάν περάσουν όλοι οι κανόνες επικύρωσης, τότε ο ελεγκτής υποβάλλει τα δεδομένα στο μοντέλο για διαδικασία και περιμένει την απόκριση.
Μόλις το μοντέλο επεξεργαστεί τις πληροφορίες και επιστρέψει μια θετική απόκριση, ο ελεγκτής φορτώνει την κατάλληλη προβολή και περνά στα δεδομένα που επιστρέφονται από το μοντέλο ως παράμετρο.
Θέα
Η προβολή ασχολείται με δεδομένα που παρουσιάζονται στον τελικό χρήστη. Στις εφαρμογές ιστού, οι προβολές περιέχουν συχνά HTML, CSS και προαιρετικά JavaScript. Οι προβολές περιέχουν ελάχιστο κώδικα προγραμματισμού. Ο κώδικας που περιέχεται στις προβολές χρησιμοποιείται συνήθως για τη συλλογή συλλογών δεδομένων που λαμβάνονται ως παράμετροι από το μοντέλο ή τη λειτουργία βοηθού για τον καθαρισμό δεδομένων ή τη δημιουργία συνδέσμων για την επεξεργασία των αρχείων. Οι περισσότερες σύγχρονες εφαρμογές ιστού συνήθως χρησιμοποιούν μηχανές templating που ορίζουν τη δική τους σύνταξη που μοιάζει περισσότερο με ψευδοκώδικα και μπορεί εύκολα να γίνει κατανοητή από τους σχεδιαστές. Όταν εργάζεστε με CodeIgniter, είναι συνήθης πρακτική να χρησιμοποιείτε σύντομες ετικέτες PHP και δομές ελέγχου. Για να εμφανιστεί κάτι στο CodeIgniter, μπορεί να χρησιμοποιηθεί ο παρακάτω κωδικός
Σε αντίθεση με
Οι δομές ελέγχου γράφονται συνήθως ως εξής
Όπως μπορείτε να δείτε από το παραπάνω παράδειγμα, η προβολή θα χρησιμοποιεί έναν συνδυασμό PHP και HTML αντί να περικλείει τα πάντα σε καθαρό κώδικα PHP.
Πώς λειτουργούν τα πλαίσια MVC;
Η παρακάτω εικόνα δείχνει το MVC framework λειτουργεί
Ένας ελεγκτής λαμβάνει το αίτημα από το χρήστη, αλληλεπιδρά με το μοντέλο της βάσης δεδομένων, εάν είναι απαραίτητο και επιστρέφει το αποτέλεσμα πίσω στο πρόγραμμα περιήγησης με τη μορφή κώδικα HTML που το πρόγραμμα περιήγησης ερμήνευσε σε μορφή αναγνώσιμη από τον άνθρωπο και εμφανίστηκε στον χρήστη.
Ελεγκτής CodeIgniter
Ας αναλύσουμε τώρα τι συνέβη μόλις φορτώσαμε την παραπάνω διεύθυνση URL στο πρόγραμμα περιήγησης ιστού.
Ανοίξτε το αρχείο Welcome.php που βρίσκεται στην εφαρμογή / ελεγκτές
Θα πρέπει να μπορείτε να δείτε τον ακόλουθο κωδικό
load->view('welcome_message');}}
ΕΔΩ,
- καθορισμένη («BASEPATH») Ή έξοδος («Δεν επιτρέπεται άμεση πρόσβαση σεναρίου») αποτρέπει την άμεση πρόσβαση στον ελεγκτή, εάν το αίτημα δεν υποβλήθηκε μέσω index.php. αυτό είναι για λόγους ασφαλείας.
- Η τάξη Welcome επεκτείνει το CI_Controller {…} ορίζει την τάξη του ελεγκτή Welcome και επεκτείνει τη γονική κατηγορία CI_Controller
- public function index () {…} ορίζει τη μέθοδο ευρετηρίου που ανταποκρίνεται στη διεύθυνση URL http: // localhost: 3000
- $ this-> load-> view ('welcome_message'); φορτώνει την προβολή Welcome_message που βρίσκεται στον κατάλογο εφαρμογών / προβολών
Τώρα θα ενημερώσουμε τη μέθοδο ευρετηρίου ως εξής
public function index(){$this->load->model('customers_model');$data['customer'] = $this->customers_model->get_customer(3);$this->load->view('welcome_message',$data);}
ΕΔΩ,
- $ this-> load-> model ('customers_model'); φορτώνει το μοντέλο των πελατών.
- $ data ['customer'] = $ this-> customers_model-> get_customer (3); καλεί τη μέθοδο get_customer of customers_model και περνά στην παράμετρο 3. Σε αυτό το παράδειγμα έχουμε κωδικοποιήσει σκληρά την τιμή, αλλά σε εφαρμογές πραγματικής ζωής αυτό θα ήταν μια παράμετρος από το URI.
- $ this-> load-> view ('welcome_message', $ data); φορτώνει την προβολή Welcome_message και περνά στη μεταβλητή $ $ στην προβολή
Μοντέλο CodeIgniter
Ας δημιουργήσουμε τώρα την προβολή που αναφέραμε στον παραπάνω κώδικα. Για λόγους απλότητας, το μοντέλο μας δεν θα αλληλεπιδρά με τη βάση δεδομένων αλλά θα επιστρέψει ένα στατικό αρχείο πελατών. Θα εργαστούμε με βάσεις δεδομένων στα επόμενα σεμινάρια.
Δημιουργήστε ένα αρχείο Customers_model.php στην εφαρμογή / μοντέλα
Προσθέστε τον ακόλουθο κωδικό
ΕΔΩ,
- Η κατηγορία Customers_model επεκτείνει το CI_Model {…} ορίζει το μοντέλο Customers_model που επεκτείνει το CI_Model.
- δημόσια συνάρτηση get_customer ($ id) {…} καθορίζει τη μέθοδο λήψης πελάτη βάσει ενός αναγνωριστικού πελάτη
- Το $ data […] καθορίζει τις στατικές τιμές του φανταστικού πελάτη μας. Αυτή πρέπει να είναι μια σειρά που επιστρέφεται από τη βάση δεδομένων.
- επιστροφή δεδομένων $; επιστρέφει τα δεδομένα πελατών.
Δηλαδή, για το μοντέλο μας. Ας τροποποιήσουμε τώρα την προβολή Welcome_message
Ανοίξτε το Welcome_message.php στο
application/views/welcome_message.php
Αντικαταστήστε τον κωδικό με τα ακόλουθα
CodeIgniter MVC Basics Customer Details Card
Customer ID :
First Name :
Last Name :
Address :
Αποθηκεύστε τις αλλαγές
Φορτώστε την ακόλουθη διεύθυνση URL στο πρόγραμμα περιήγησης ιστού
http: // localhost: 3000 /
Θα πρέπει να μπορείτε να δείτε την κάρτα πελάτη όπως φαίνεται στην παρακάτω εικόνα
Περίληψη
- Το MVC είναι ένα αρχιτεκτονικό σχέδιο που χωρίζει την εφαρμογή σε τρία βασικά στοιχεία
- Το μοντέλο είναι υπεύθυνο για την αλληλεπίδραση με πηγές δεδομένων
- Ο ελεγκτής ακούει εισερχόμενα αιτήματα πόρων από τους χρήστες
- Στις εφαρμογές ιστού, οι προβολές περιέχουν συχνά HTML, CSS και προαιρετικά JavaScript
- Ένας ελεγκτής λαμβάνει το αίτημα από τον χρήστη, αλληλεπιδρά με το μοντέλο της βάσης δεδομένων εάν είναι απαραίτητο και επιστρέφει το αποτέλεσμα πίσω στο πρόγραμμα περιήγησης με τη μορφή κώδικα HTML