Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZF] View helpers
skowron-line
post 17.11.2011, 15:58:32
Post #1





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


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/


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
melkorm
post 17.11.2011, 17:14:09
Post #2





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


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

Ten post edytował melkorm 17.11.2011, 17:23:33


--------------------
Go to the top of the page
+Quote Post
Laszlo85
post 17.11.2011, 18:44:30
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 17.11.2011

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
melkorm
post 17.11.2011, 18:59:27
Post #4





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


@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


--------------------
Go to the top of the page
+Quote Post
Laszlo85
post 17.11.2011, 19:02:23
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 17.11.2011

Ostrzeżenie: (0%)
-----


Aha... dzięki, zaraz to przećwiczę smile.gif

Edit: też działa i jest prościej smile.gif

Ten post edytował Laszlo85 17.11.2011, 19:03:50
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 21.07.2025 - 08:47