Vediamo ora il codice per la visualizzazione e l'elaborazione del form.
Un passo fondamentale è quello di configurare l'autoloader per impostare il namespace Form_ e collegarlo alla directory che abbiamo creato apposta per contenere i nostri form. In breve, è come se dovessimo "attivare" la directory /application/forms/.
Nel file application/Bootstrap.php dunque aggiungiamo il seguente metodo:
protected function _initAutoload() {
// Add autoloader empty namespace
$autoLoader = Zend_Loader_Autoloader::getInstance();
$resourceLoader = new Zend_Loader_Autoloader_Resource(array(
'basePath' => APPLICATION_PATH,
'namespace' => '',
'resourceTypes' => array(
'form' => array(
'path'=> 'forms/',
'namespace' => 'Form_',
)
),
));
// viene restituto l'oggetto per essere utilizzato e memorizzato nel bootstrap
return $autoLoader;
}
Questo metodo viene chiamato per configurare l'autoloader, che a questo punto saprà come leggere e trattare le classi contenute nella directory application/forms e che hanno il nome che inizia con il prefisso Form_.
Nel controller Login
(file application/controllers/LoginController.php) aggiungiamo la action che si occupa di gestire la richiesta di visualizzazione del form, che potrebbe essere simile alla seguente:
[...]
public function formAction() {
//Creo un oggetto form configurato come abbiamo precedentemente visto
$frmLogin = new Form_LoginForm();
//Assegnamo alla view una istanza del nostro oggetto form
$this->view->form = $frmLogin;
}
[...]
Passiamo ad analizzare il codice della view creando il file form.phtml nella directory application/views/scripts/login/).
[...]
<h2>Area Riservata</h2>
<p>Per accedere all'area riservata effettuare il login:</p>
<?php
echo $this->form->render();
// echo $this->form; produce lo stesso risultato
?>
[...]
Questa view è molto semplice: non facciamo altro che visualizzare il form così come è stato configurato nei passi precedenti.