Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF] View helpers
Forum PHP.pl > Forum > Przedszkole
skowron-line
Próbuje odpalić view helpera
mam helpera w lokalizacji application/views/helpers/Upper.php klase Application_Views_Helpers_Upper w
bootstrapie mam
Kod
    public function _initHelpersAndScriptsPath()
    {
        $this->bootstrap('view');
        $view = $this->getResource('view');
        $view->addHelperPath(APPLICATION_PATH .'/views/helpers')
            ->setScriptPath(APPLICATION_PATH .'/views/scripts');
    }

a w kontrollerze odwołuje się tak
Kod
    public function indexAction()
    {    
        $this->view->upper();
    }

Ale jak bym nie kombinował dostaje błąd
Kod
Message: Plugin by name 'Upper' was not found in the registry; used paths: Zend_View_Helper_: Zend/View/Helper/:/var/www/zend/quickstart/application/views/helpers/
melkorm
Klasę nazwij: Application_View_Helper_Upper

Writing Custom Helpers - drugi podpunkt - czyli Namespace dla helperów w danej lokalizacji


Czyli teraz szuka helperów gdzie klasa zaczyna się od Zend_View_Helper_ w dwóch lokalizacjach które widzisz w message'u exceptiona wink.gif

Czyli poprawiając moją pierwszą myśl klasa powinna się nazywać Zend_View_Helper_Upper
Laszlo85
A dokładniej, nazwa klasy w tym przypadku to: Zend_View_Helper_Upper
W klasie tej zadeklarować: public $view;
oraz napisać metody upper oraz setView

przykład dla helpera menu:

  1. <?php
  2. class Zend_View_Helper_Menu{
  3. public $view;
  4.  
  5. public function menu(){
  6. $sHtml='<ul>
  7. </ul>';
  8. return $sHtml;
  9. }
  10. public function setView(Zend_View_Interface $view){
  11. $this->view = $view;
  12. }
  13. }
  14. ?>


To co napisałeś to nie jest helper, to jest procedura inicjująca która powinna znajdować się w pliku Bootstrap.php
melkorm
@Laszlo85

Wystarczy dziedziczyć po Zend_View_Helper_Abstract i to
  1. public $view;
  2.  
  3. ...
  4. public function setView(Zend_View_Interface $view){
  5.  
  6. $this->view = $view;
  7.  
  8. }


Jest wtedy niepotrzebne.

I jakbyś nie zauważył @skowron-line nie załączył kodu klasy Application_Views_Helpers_Upper
Laszlo85
Aha... dzięki, zaraz to przećwiczę smile.gif

Edit: też działa i jest prościej smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.