38K Views

MVC: UNA nuova luce la creazione di Applicazioni Web

Christopher Alexander dice, “Ogni pattern descrive un problema che si verifica più e più volte nel nostro ambiente, e quindi descrive il nucleo della soluzione a questo problema, in modo che è possibile utilizzare questa soluzione un milione di volte, senza mai farlo due volte nello stesso modo”.

Come un ingegnere del software, abbiamo tutti sentito le persone condividono le loro parole di saggezza su come non “reinventare la ruota”. Se c’è già una soluzione ad un problema comune, è nel nostro interesse ad utilizzarlo, piuttosto che sprecare il nostro tempo per escogitare nuove soluzioni e di perfezionamento.

Che è divertente, perché anche se non del tutto d’accordo con la non “reinventare la ruota”, credo che riassumono perfettamente l’essenza del design pattern ingegneria del software, che è quello che stiamo andando a parlare oggi. Più in particolare, parleremo di pattern MVC e di come essa svolge un ruolo importante nello sviluppo di un’applicazione di grandi dimensioni.

Pattern MVC (Model – View – Controller)

MVC è un software di architettura del modello, che mettere semplicemente dire che è un modello per definire la struttura di base e alla base di funzionamento di un’applicazione da un punto di vista architettonico. Tradizionalmente utilizzato per la costruzione di desktop Gui, questo modello è stato ampiamente adottato per la creazione di applicazioni web, e ogni implementazione di questo modello variano nella loro interpretazione, con sottili differenze. Vale a dire che non c’è un “modo giusto” di andare su di esso.

MVC, come suggerisce il nome, si divide l’applicazione in tre parti interconnesse: Model, View e Controller

  • Modello: Il modello è l’oggetto di applicazione, che è solo un altro modo di dire che viene usato per memorizzare i dati che viene utilizzato attraverso la nostra applicazione, è il ponte tra la componente di Vista & la componente Controller. Il modello non è a conoscenza di altri due componenti, view e controller.
  • Vista: Il punto di Vista è il modello di presentazione dello schermo, nel senso che la vista è quello che l’utente vede quando si utilizza l’applicazione. Prende i dati che passo su di esso, e rende il risultato finale è visibile sullo schermo. Nel caso di una web app, si può immaginare la vista finale del documento HTML che il rendering tramite il browser web (user-agent).
  • Controller: Controller definisce il modo con cui l’utente interagisce con la nostra applicazione. È compito è quello di prendere l’input dell’utente, aggiornare il corrispondente modello di conseguenza, e poi la ri-renderizzare la vista. Il Controller è quello che colle sia il modello e la vista insieme, e la maggior parte della nostra logica dell’applicazione corrispondente all’interfaccia utente risiede.

 

Un modo semplice per immaginare il pattern MVC è pensare a un modello contenente alcuni dati statistici. La vista rende i dati che risiedono all’interno del modello in un grafico. Questo grafico può essere un grafico a torta, o un grafico a barre, a seconda che l’utente preferisce, che è gestito dal controller.

C’è molto di più ad esplorare il pattern MVC, cosa di cui abbiamo parlato sopra è più che sufficiente per afferrare una comprensione di base di esso. Andiamo avanti e costruire una semplice applicazione PHP per capire il pattern MVC in modo più approfondito.

L’applicazione saremo in costruzione sarà molto semplice. Useremo un singolo file php (index.php) per gestire la logica della nostra applicazione web. Noi ti abbattere la nostra applicazione in controller che corrispondono a diversi punti di vista. Tutti i controller di andare nel Controller di directory, tutti i punti di vista andrà in Vista directory e tutto il modello, andare nel Modello di directory. Quindi, ecco come faremo struttura di directory della nostra applicazione:

Application
-> Controller
-> Model
-> View
-> index.php

 

// index.php

ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(-1);

function autoload($className)
{
    include_once "Controller/{$className}.php";
    include_once "Model/{$className}.php";
}
spl_autoload_register("autoload");

$requestAction = !empty($_GET['action']) ? $_GET['action'] : 'Home';

switch ($requestAction) {
    case 'User':
        $controller = new UserController();
        break;
    default:
        $controller = new HomeController();
        break;
}

$controller->handleRequest();

 

// Controller/UserController.php

class UserController{
    public function handleRequest()
    {
        include "View/userView.php";
    }
}

 

// Controller/HomeController.php

class HomeController{
    public function handleRequest()
    {
        include "View/homeView.php";
    }
}

 

// View/userView.php

echo (''
    . '<h1>Web Application</h1>'
    . '<p>User View</p>'
);

 

// View/homeView.php

echo (''
    . '<h1>Web Application</h1>'
    . '<p>Home View</p>'
);

Quello che stiamo facendo qui è fondamentalmente il recupero dei dettagli della pagina che l’utente sta visitando da $_GET[‘action’], che se impostato mappe azione corrispondente controller. Se non è soddisfatta, allora siamo di default per il Controller principale. Per ogni controller che abbiamo, abbiamo definito una funzione handleRequest() che gestisce la richiesta ed esegue l’applicazione di conseguenza, il rendering di una vista particolare, o reindirizzare l’utente a un’altra pagina (ad esempio, dopo il successo di invio del modulo).

Speriamo che, se si capisce il flusso dell’applicazione che stiamo costruendo qui, potrai iniziare a vedere i benefici di un approccio MVC per la costruzione di roba. Per me personalmente, è più ben organizzato e strutturato. È come spostare dalla Programmazione Procedurale per la Programmazione Orientata agli Oggetti, ma in questo caso, stiamo facendo lo stesso con la costruzione della nostra applicazione.

non Siamo andati molto nel dettaglio il modello parte del pattern MVC, ma questo è un altro argomento tutti insieme e qualcosa che vorrei lasciare ai lettori di esplorare se stessi. Per le parti di base, è possibile lavorare con il tuo modello (che viene utilizzato per memorizzare i dati) all’interno del controllore e pass che modello sul vostro punto di vista. Ricordo che il modello unico scopo è quello di gestire i dati, e non è a conoscenza di entrambi i Controller e la Vista. Il Controller è quello che lega la Vista e il Modello insieme. E la Vista è il modo per rappresentare il modello per l’utente. Non c’è assolutamente alcuna necessità di imporre un modello in una vista in cui non è necessario, quindi è possibile per un punto di vista che non dipende da un modello.

Category(s) Design uvdesk
. . .

Comment

Add Your Comment

Be the first to comment.

css.php