Zend framework, View Helpers (1)

Introduzione ai View Helpers

Spesso nelle View abbiamo bisogno di funzioni particolari: formattare date o valute, generare dinamicamente form, visualizzare URL particolari, ecc. A tale scopo esistono i View Helper, semplici da sviluppare e facili da manutenere. Si presentano sotto forma di classi e per crearle basta seguire attentamente le convenzioni di naming prestabilite.
Il percorso di default in cui posizionare queste classi può essere:

/application/views/helpers/SayHello.php

Nel caso in cui il progetto presenti più moduli avremo percorsi del genere:
/default/application/views/helpers/SayHello.php
/admin/application/views/helpers/SayHello.php

In questo secondo caso potremmo avere ridondanza del codice se il View Helper svolge la stessa funzione.
La soluzione è quella di posizionarla in un percorso diverso e settarlo in fase di bootstrap.
Il percorso potrebbe essere:

/library/My/View/Helper/SayHello.php

Nel bootstrap invece registriamo il percorso in questo modo:

$view->addHelperPath('My/View/Helper/', 'My_View_Helper');

Il primo parametro è il percorso vero e proprio, il secondo è il modo con cui inizia il nome della classe.
La nostra classe a questo punto potrebbe essere:

class My_View_Helper_SayHello() {
function sayHello() {
return "Hello!";
}
}

NB: Il nome del metodo deve iniziare con lettera minuscola, a differenza del nome della classe.
Il nostro View Helper a questo punto può essere richiamato nelle View in modo semplice:

<p><?php echo $this->sayHello() ?></p>

View Helpers esistenti nello Zend Framework

Ora vediamo alcuni View Helpers che sono disponibili di default nello Zend Framework.

Action
Permette di richiamare direttamente un action di un controller, richiede due parametri (controller e action) obbligatori. Vedi esempio di Action View Helper.

[continua…]

2 pensieri su “Zend framework, View Helpers (1)

  1. pagliaccio

    Nel bootstrap invece registriamo il percorso in questo modo:

    $view->addHelperPath(‘My/View/Helper/’, ‘My_View_Helper’);

    dove lo registriamo nel bootstrap?

  2. Davide

    Nel Bootstrap puoi creare diversi metodi protected che vengono chiamati in sequenza automaticamente durante la fase di bootstrap.
    Io, ad esempio, le suddivido per aree e quindi ho questo metodo:

    protected function _initLayoutView()
    {

    }

    in cui metto appunto tutto quello che mi serve per attivare layout e view.
    Leggi Adding Zend_Application to your application per approfondimenti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *