I meccanismi messi in essere dai controller dello Zend_Framework sono quelli tipici delle architetture per oggetti, per cui ad una determinata chiamata consegue un'istanza che mette a disposizione i metodi necessari all'esecuzione.
Un volta eseguiti i metodi, Zend_Controller_Action si fà carico di riprendere il controllo delle chiamate ai metodi e si occupa di soddisfare ulteriori richieste nel caso si presenti nuovamente la necessità di eseguire metodi.
Per utilizzare i controller sarà opportuno posizionare la relativa cartella ("controllers"), al di fuori della document_root, per esempio in una directory "Apps" posta al suo stesso livello. Di default questa cartella è vuota.
Prendiamo come riferimento un listato del genere:
<?php include 'Zend.php'; Zend::loadClass('Zend_Controller_Front'); $ctrl = Zend_Controller_Front::getInstance(); $ctrl->setControllerDirectory('/percorso/controllers'); $ctrl->dispatch(); ?>Concettualmente il framework divide una richiesta in due parti, se per esempio viene richiesto "/yyy/zzz", "yyy" dovrà essere rappresentazione del controller, mentre "zzz" rappresenterà l'azione effettuata; vi è poi un valore di default che è sempre rappresentato da "index".