Bootstrap
Il file bootstrap è il punto di ingresso dell'applicazione ( index.php
). Contiene codice nell'ambito globale (e questo è l'unico posto, dove dovrebbe essere il caso). In una struttura, lo fa
- crea un oggetto richiesta dalla richiesta
- crea un oggetto risposta in base al tipo di risorsa richiesta
- chiedi al router per il responsabile responsabile della richiesta corrente
- crea il controller e chiama il suo metodo principale, fornendogli gli request e answer (questo spesso viene chiamato dispatching )
- echo la risposta
Richiesta
L'oggetto richiesta viene utilizzato per astrarre dall'ambiente web. Alla fine, è solo un contenitore di dati (spesso una copia di $_REQUEST
) che ti permette di effettuare chiamate successive ad altri controller (vedi HMVC ).
risposta
L'oggetto risposta sta gestendo l'output. Potresti avere classi di risposta diverse per XHTML, HTML5, PDF, JSON, ..., tu_name_it con un'interfaccia identica. È responsabile anche per gli avvisi e gli errori di messaggistica.
Router
Il router sa, a quale controller è assegnato il tipo di URL. Data la richiesta , prende una decisione sul controllore e lo restituisce al bootstrap .
Dispatcher
Un dispatcher viene utilizzato in diverse situazioni. Potresti pensarci come una mappa e chiamare thingest. Nel nostro caso, il file bootstrap e il router costituiscono insieme un dispatcher. Un dispatcher viene anche utilizzato per mappare eventi ai vari gestori di eventi (plugin) ed eseguirli (spesso usando il pattern Observer ).
Controller anteriore
Un dispatcher che collega gli URL ai controllori ed eseguirli a seconda della richiesta viene anche definito front controller .
Eventi
il meccanismo evento viene utilizzato per disaccoppiare i sistemi. Puoi ad esempio creare plugin che influenzano il risultato del router. L'unica cosa che devi fare è inviare alcuni eventi (ad esempio onBeforeRoute
o onAfterRoute
) nel metodo di routing. onBeforeRoute
otterrebbe la richiesta e potrebbe cambiarlo, prima ancora che il router lo guardi; onAfterRoute
sarebbe in grado di cambiare l'uscita del router. Questo è solo un piccolo esempio di cosa puoi fare con gli eventi.