Własne Helpery w Zend Framework

Wcześniej opisałem w artykule „Helpery w Zend Framework” jak wykorzystać wbudowane helpery a teraz przyszła pora na zrobienie swojego.

W kontrolerze ustawiam ścieżkę do swoich helperów:
[sourcecode lang=”php”]$this->view->setHelperPath(‚application/helpers/’, ‚Helper_’);[/sourcecode]
Może to być ustawiane w dowolnym innym momencie ważne aby odwołać się do aktualnego widoku ($this-view).
Osobiście utworzyłem klasę abstrakcyjną Controller_Abstract która dziedziczy po Zend_Controller_Action a w niej przeciążyłem metodę init() i tam umieśiłem w/w ustalanie ścieżki. Natomiast każdy mój kontroler dziedziczy po klasie Controller_Abstract.

Jedna z moich klas helpera wygląda tak (znajduje się w application/helpers/Naglowek.php):
[sourcecode lang=”php”]
class Helper_Naglowek {
function naglowek(Zend_View $view) {

$config = new Zend_Config_Ini(‚application/config.ini’);

$view->title = $config->title;
$html = $view->render(‚naglowek.phtml’);

return $html;
}
}
[/sourcecode]
Do metody helpera przekazuje obiekt klasy Zend_View aby móc zrenderować plik phtml z kodem html jaki ma wygenerować.
W tym przykładzie jeszcze możecie zobaczyć jak wyciągam z pliku konfiguracyjnego informację o tytule i przekazuje je do widoku helpera.

Plik widoku naglowek.phtml wygląda tak:
[sourcecode lang=”html”]

[/sourcecode]

Użycie helpera w dowolnym widoku odbywa się tak:
[sourcecode lang=”html”]< ?= $this->naglowek($this);?>[/sourcecode]
Tu właśnie widać jak przekazuje obiekt klasy Zend_View do helpera.

2 thoughts on “Własne Helpery w Zend Framework

  1. Moim zdanie trochę bezsensowny helper, ponieważ zaśmiecasz szablon niepotrzebnie. Szablon powinien składać się głównie z kodu html (css ,js) a ty tylko wpisujesz za pomocą znaczników dane,które mają się wyświetlić. Wyobraż sobie sytuacje gdzie tworzysz witrynę w zespole i np jest grafik, który stworzył Ci gotowy szablon strony w html+css a miejsca gdzie mają być wstawione konkretne zmienne zastępujesz tylko odwołaniami zmienna;?> Tak samo wygląda praca gdy kupiłeś gotowy szablon a tylko nadajesz mu funkcjonalność…

    Czy helpery są pomocne ?
    Owszem moim zdaniem powinno je się wykorzystywać do formatowania daty oraz innych podobnych operacji,ale nie opakowywania danych w kod html ponieważ do opakowywania danych służy sama klasa szablonów, które opakowuje gotowe dane w kod html.

  2. Każdy może mieć swoje zdanie. Dziękuję za tą opinię. Dzięki temu czytelnicy będą mieli też okazję spojrzeć na problem z innej strony.

Comments are closed.