CodeIgniter MVC (Model View Controller) Framework con esempio

Sommario:

Anonim

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