Link copiato negli appunti
Zend_Controller_Front implementa il pattern Front Controller: tutte le richieste passano attraverso questo elemento, che è responsabile dell'inoltro della richiesta e del ritorno del responso. Il workflow del Front Controller è gestito da diversi componenti:
- Zend_Controller_Request_Abstract : rappresenta la richiesta non ancora processata; è responsabile di tutte le informazioni che circondano la richiesta, per tutto il restante processo.
- Zend_Controller_Router_Interface : rappresenta il router, ovvero l'oggetto che ispezione la richiesta e determina quale controller e quale action devono essere eseguiti per processarla correttamente. Il router di default seziona l'URL secondo lo schema /controller/action/chiave/valore come nel seguente esempio localhost/public/news/update/id/84 in cui siamo di fronte al controller "news", all'action "update", con la chiave "id" impostata sul valore "84" .
- Zend_Controller_Dispatcher_Interface : il ruolo del dispatcher è quello di prelevare le informazioni fornite dal router, instanziare il controller in questione ed eseguire l'action per processare la richiesta. Questo processo viene eseguito in loop per poter gestire quelle richieste che necessitano di complesse computazioni.
- Zend_Controller_Response_Abstract : rappresenta l'oggetto "response" che raccoglie i risultati della richiesta ricevuta, gestita e completata.