PHP
HTML
CSS
JavaScript
Generatori
Varie & Old

PHP: Struttura MVC

Struttura MVC in PHP

L’architettura MVC è un modello di sviluppo software che separa la logica di business, la gestione dei dati e la presentazione grafica in tre componenti distinti: Model, View e Controller. Questa separazione rende il codice più ordinato, modulare e manutenibile.

Introduzione

Il pattern MVC (Model-View-Controller) è molto diffuso nello sviluppo web, incluso l’uso con PHP. L’idea è dividere l’applicazione in tre parti principali: modello, vista e controllore. Ogni parte ha un compito preciso, riducendo la complessità e migliorando la collaborazione tra sviluppatori.

I tre componenti principali

Analizziamo i tre elementi fondamentali dell’architettura MVC:

  • Model (Modello): rappresenta i dati e la logica di business dell’applicazione. Comunica con il database, elabora i dati e fornisce le informazioni al Controller.
  • View (Vista): è la parte visibile dall’utente. Si occupa di mostrare i dati (provenienti dal Model) in un formato leggibile, tipicamente pagine HTML con PHP.
  • Controller (Controllore): gestisce le richieste dell’utente, decide quale Model interrogare e quale View mostrare. È il “regista” che collega input e output.

Flusso di lavoro MVC

Il flusso tipico di un’applicazione MVC è il seguente:

  1. L’utente interagisce con l’interfaccia (View), ad esempio inviando un form.
  2. La richiesta viene ricevuta dal Controller.
  3. Il Controller elabora la richiesta e interroga il Model per ottenere o modificare i dati.
  4. Il Model restituisce le informazioni al Controller.
  5. Il Controller passa i dati alla View, che li mostra all’utente.

Esempio minimale di MVC

Vediamo un esempio molto semplice: vogliamo mostrare il nome di un utente salvato nel “modello”. Il Controller recupera i dati dal Model e li passa alla View che li visualizza.

Codice Esempio: MVC di base

CODE: PHPpreleva codice
  1. <?php
  2. // Model (gestisce i dati)
  3. class Utente {
  4.   public $nome = "Mario Rossi";
  5. }
  6.  
  7. // Controller (logica applicativa)
  8. class UtenteController {
  9.   public function mostraUtente() {
  10.     $utente = new Utente();
  11.     return $utente->nome;
  12.   }
  13. }
  14.  
  15. // View (interfaccia utente)
  16. $controller = new UtenteController();
  17. $nome = $controller->mostraUtente();
  18. echo "Benvenuto, " . $nome;
  19. ?>
  20. <!-- Output:
  21. Benvenuto, Mario Rossi
  22. -->

Esempio con input simulato

In un contesto reale, il Controller riceve i dati dall’utente (ad esempio da un form). Qui simuliamo l’inserimento del nome tramite una variabile e lo passiamo al Model.

Codice Esempio: MVC con input

CODE: PHPpreleva codice
  1. <?php
  2. // Model
  3. class Utente {
  4.   public $nome;
  5.   public function __construct($nome) {
  6.     $this->nome = $nome;
  7.   }
  8. }
  9.  
  10. // Controller
  11. class UtenteController {
  12.   public function creaUtente($nome) {
  13.     return new Utente($nome);
  14.   }
  15. }
  16.  
  17. // View
  18. $controller = new UtenteController();
  19. $utente = $controller->creaUtente("Anna Bianchi");
  20. echo "Benvenuto, " . $utente->nome;
  21. ?>
  22. <!-- Output:
  23. Benvenuto, Anna Bianchi
  24. -->

Tabella riassuntiva

Componente Ruolo Esempio
ModelGestisce i dati e la logica di businessClasse PHP per query al database
ViewMostra l’interfaccia all’utenteFile PHP/HTML per presentare dati
ControllerCoordina input e outputScript PHP che riceve richieste

Considerazioni

L’architettura MVC non è un framework in sé, ma un modello concettuale che può essere implementato in PHP sia manualmente che con l’aiuto di framework come Laravel o CodeIgniter. La separazione dei ruoli consente di avere codice più leggibile, facilmente aggiornabile e adatto a progetti complessi. In applicazioni complesse (framework come Laravel o Symfony) la logica MVC è molto più articolata, ma il principio rimane lo stesso.


I Cookie su questo sito:

Il nostro sito utilizza cookie e altre tecnologie in modo tale che sia noi, sia i nostri partner, possiamo ricordarci di te e capire come tu e gli altri visitatori utilizzate il nostro sito. Qui puoi trovare ulteriori informazioni sui cookie e le altre tecnologie. Chiudendo questo banner o continuando la navigazione acconsenti all'uso dei cookie. Acconsento Info Cookies