Cos'è MVC?
Standard MVC per Model-View-Control. È un modello architettonico che divide l'applicazione in tre componenti principali.
1. Il modello si occupa della logica aziendale e delle interazioni con il database
2. Il controller coordina le attività tra il modello e la vista
3. View è responsabile della presentazione dei dati
Di seguito sono riportati alcuni dei vantaggi del modello architettonico MVC
- Accoppiamento allentato: i componenti esistono e funzionano indipendentemente l'uno dall'altro.
- Flessibilità: è possibile apportare facilmente modifiche ai singoli componenti
- Maggiore produttività: più di una persona può lavorare al progetto contemporaneamente. Gli sviluppatori front-end possono lavorare su visualizzazioni e presentazioni mentre gli sviluppatori back-end possono concentrarsi sui modelli e poiché il sistema è liberamente accoppiato, alla fine della giornata funziona
In questo tutorial imparerai:
- Cos'è MVC?
- Modello
- Controller
- Visualizza
- Come funzionano i framework MVC?
- Controller CodeIgniter
- Modello CodeIgniter
Modello
Il modello è responsabile dell'interazione con le fonti di dati. Di solito è un database, ma può anche essere un servizio che fornisce i dati richiesti. È anche pratica comune avere la logica di business contenuta nei modelli in contrapposizione al controller. Questa pratica viene solitamente definita controller skinny modello grasso.
Il modello di solito scrive i dati nel database, fornisce un meccanismo per la modifica, l'aggiornamento e l'eliminazione dei dati. In una moderna applicazione Web, i modelli utilizzano modelli di progettazione di accesso ai dati come il record attivo per semplificare l'interazione con il database.
Ad esempio, CodeIgniter utilizza una libreria Active Record incorporata per aiutare i modelli, mentre altri framework come Laravel utilizzano Eloquent Object Relational Mapper (ORM) che aiuta l'accesso ai dati.
Controller
Il controller ascolta le richieste in arrivo di risorse da parte degli utenti. Funge da intermediario tra il modello e la vista e talvolta implementa anche alcune regole aziendali. Supponiamo che il controller riceva una richiesta per registrare un utente nel database.
Il controller può eseguire la convalida dei dati su ciò che è stato presentato per garantire che tutti i parametri richiesti siano stati presentati. Se manca qualcosa l'utente viene reindirizzato alla pagina di registrazione con l'apposito messaggio di errore visualizzato. Il controller può anche richiedere al modello di eseguire ulteriori convalide controllando se l'indirizzo e-mail inviato esiste già. Se tutte le regole di convalida passano, il controller invia i dati al modello per il processo e attende la risposta.
Una volta che il modello ha elaborato le informazioni e ha restituito una risposta positiva, il controller carica la vista appropriata e passa i dati restituiti dal modello come parametro.
Visualizza
La vista si occupa dei dati presentati all'utente finale. Nelle applicazioni Web, le visualizzazioni spesso contengono HTML, CSS e, facoltativamente, JavaScript. Le viste contengono un codice di programmazione minimo. Il codice contenuto nelle viste viene solitamente utilizzato per scorrere le raccolte di dati ricevuti come parametri dal modello o dalla funzione di supporto per ripulire i dati o creare collegamenti per modificare i record. La maggior parte delle applicazioni Web moderne di solito utilizza motori di modelli che definiscono la propria sintassi che è più simile a uno pseudocodice e può essere facilmente compresa dai designer. Quando si lavora con CodeIgniter, è pratica comune utilizzare brevi tag PHP e strutture di controllo. Per visualizzare qualcosa in CodeIgniter, si potrebbe utilizzare il codice seguente
Al contrario di
Le strutture di controllo sono generalmente scritte come segue
Come puoi vedere dall'esempio sopra, la vista utilizzerà una combinazione di PHP e HTML invece di racchiudere tutto in puro codice PHP.
Come funzionano i framework MVC?
L'immagine seguente mostra il funzionamento del framework MVC
Un controller riceve la richiesta dall'utente, interagisce con il modello di database se necessario, quindi restituisce il risultato al browser sotto forma di codice HTML che il browser ha interpretato in un formato leggibile e visualizzato all'utente.
Controller CodeIgniter
Analizziamo ora cosa è appena successo quando abbiamo caricato l'URL sopra nel browser web.
Apri il file Welcome.php controller situato application / controller
Dovresti essere in grado di vedere il codice seguente
load->view('welcome_message');}}
QUI,
- definito ('BASEPATH') OR exit ('Nessun accesso diretto allo script consentito'); impedisce l'accesso diretto al controller se la richiesta non è arrivata tramite index.php. questo è per motivi di sicurezza.
- class Welcome estende CI_Controller {…} definisce la classe Welcome controller ed estende la classe genitore CI_Controller
- public function index () {…} definisce il metodo index che risponde all'URL http: // localhost: 3000
- $ this-> load-> view ('welcome_message'); carica la vista welcome_message che si trova nella directory application / views
Aggiorneremo ora il metodo dell'indice come segue
public function index(){$this->load->model('customers_model');$data['customer'] = $this->customers_model->get_customer(3);$this->load->view('welcome_message',$data);}
QUI,
- $ this-> load-> model ('customers_model'); carica il modello dei clienti.
- $ data ['cliente'] = $ this-> customers_model-> get_customer (3); chiama il metodo get_customer di customers_model e passa il parametro 3. In questo esempio abbiamo codificato il valore ma nelle applicazioni reali questo sarebbe un parametro dell'URI.
- $ this-> load-> view ('welcome_message', $ data); carica la vista welcome_message e passa la variabile $ data alla vista
Modello CodeIgniter
Creiamo ora la vista a cui abbiamo fatto riferimento nel codice precedente. Per semplicità, il nostro modello non interagirà con il database ma restituirà un record cliente statico. Lavoreremo con i database nei prossimi tutorial.
Crea un file Customers_model.php in application / models
Aggiungi il codice seguente
QUI,
- class Customers_model extends CI_Model {…} definisce il modello Customers_model che estende CI_Model.
- la funzione pubblica get_customer ($ id) {…} definisce il metodo get customer basato su un ID cliente
- $ data […] definisce i valori statici del nostro cliente fittizio. Dovrebbe essere una riga restituita dal database.
- restituire $ dati; restituisce i dati del cliente.
Cioè, per il nostro modello. Modifichiamo ora la visualizzazione welcome_message
Apri welcome_message.php situato in
application/views/welcome_message.php
Sostituisci il codice con il seguente
CodeIgniter MVC Basics Customer Details Card
Customer ID :
First Name :
Last Name :
Address :
Salva le modifiche
Carica il seguente URL nel browser web
http: // localhost: 3000 /
Dovresti essere in grado di vedere la scheda cliente come mostrato nell'immagine qui sotto
Sommario
- MVC è un modello architettonico che divide l'applicazione in tre componenti principali
- Il modello è responsabile dell'interazione con le fonti di dati
- Il controller ascolta le richieste in arrivo di risorse da parte degli utenti
- Nelle applicazioni web, le viste spesso contengono HTML, CSS e, facoltativamente, JavaScript
- Un controller riceve la richiesta dall'utente, interagisce con il modello di database se necessario, quindi restituisce il risultato al browser sotto forma di codice HTML