Link utili

Home Articoli Zend Framework Zend Framework Tutorial - 5

Zend Framework Tutorial - 5

Stampa E-mail
Articoli - Zend Framework
Scritto da Gianni Tomasicchio   
Domenica 29 Luglio 2007 11:49
Indice
Zend Framework Tutorial - 5
viewAction
deleteAction
newAction
editAction
Conclusioni

NewsController

Siamo finalmente arrivati all'ultima parte di questa serie di articoli dedicati alla realizzazione di una applicazione con lo Zend Framework. Dobbiamo analizzare il funzionamento del NewsController, il cuore della nostro sito web, che si occupa della visualizzazione, inserimento, modifica e cancellazione delle news. Di seguito viene riportata la struttura del Controller che sarà analizzata in dettaglio nelle prossime pagine.

class NewsController extends Zend_Controller_Action
{
    protected $_flashMessenger = null;

    public function init() {
        // istruzioni...
    }

    public function viewAction() {
        // istruzioni...
    }

    public function deleteAction() {
        // istruzioni...
    }

    public function newAction() {
        // istruzioni...
    }

    public function editAction() {
        // istruzioni...
    }
}

Nel codice sono evidenti le quattro Action per la gestione delle news (viewAction, deleteAction, newAction, editAction). Inoltre si può notare l'attributo $_flashMessenger che ci serve per conservare un riferimento all'helper FlashMessenger, descritto nel precedente articolo. Poiché il FlashMessenger viene utilizzato in quasi tutte le Action, è conveniente recuperarlo e conservarlo in un attributo (una variabile) del Controller. Dove vanno poste le istruzioni per recuperare il FlashMessenger indipendentemente dalla Action chiamata? Nel metodo init(), di seguito riportato:

public function init()
{
    $this->_flashMessenger = $this->_helper->getHelper('FlashMessenger');

    if($this->_hasParam('annulla')) {
        $this->_redirect('/');
    }
}

Il metodo init() è una particolare funzione che è possibile inserire in un Controller. Se presente, viene eseguito prima di qualsiasi Action richiesta dall'utente, quindi risulta utile quando vogliamo lanciare delle istruzioni comuni a tutte le Action, senza doverle ripetere in ciascuna di esse. Nel nostro caso il metodo init() è stato utilizzato proprio per conservare un riferimento al FlashMessenger nell'attributo $this->_flashMessenger.

Inoltre due Action del Controller (quelle che gestiscono l'inserimento e la modifica di una news) prevedono che l'operazione possa essere annullata attraverso la pressione di un tasto "annulla", presente nel form. Anche la gestione di questo comportamento comune quindi può essere "centralizzata" nel metodo init() in modo da non doverla ripetere (ricopiare) nelle due Action.

Per sapere se è presente un parametro tra i dati inviati con il form utilizziamo l'istruzione $this->_hasParam('nome_parametro'). Nel nostro caso il pulsante di annullamento è un classico bottone di submit e ha per nome 'annulla'. Per effettuare il redirect utilizziamo invece $this->_redirect('/URL/di/destinazione'). Corrisponde al classico header('location: /URL/di/destinazione');



 

Commenti  

 
# Zend_Framework 2009-11-23 22:43
Ciao, grazie anche a questi tutorial, dai quali ho preso alcuni spunti ho convertito il mio vecchio sito (Grisou.org) precedentemente realizzato con Joomla! ad un'applicazione custom realizzata con Zend_Framework. Spero presto di poter portare questa esperienza nella società per cui lavoro (Excite - www.excite.it / GoAdv - www.goadv.net),
Rispondi | Rispondi con citazione | Citazione
 

Aggiungi commento

ATTENZIONE ! - per aprire discussioni su problematiche tecniche utilizzare il forum!


Codice di sicurezza
Aggiorna

sponsor