Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework]Helper widoku
Oczko21
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 12.07.2009

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


Witam,
Mam kilka pytań które nurtują mnie w Zendzie, a jako że dopiero zaczynam swoją przygodę z tym frameworkiem to chciałbym od początku uczyć się dobrych nawyków.
1. Jakie rozszerzenie powinny mieć helpery widoków- php czy phtml? Sprawdzałem oba rozszerzenie i helpery działają tylko z rozszerzeniem php, ale wole się upewnić (IMG:style_emoticons/default/smile.gif)
2. Chciałbym aby ktoś skomentował czy poniższe rozwiązanie prawidłowo zrobiłem.

Helpera mam w takim katalogu views/helpers/submenuHelper.php, następnie z tego co wyczytałem w dokumentacji to wywołanie helpera odbywa się w pliku widoku, czyli np. views/scripts/index/index.phtml. W tym widoku wywołuje go tak:
  1. <?php
  2. echo $this->submenuHelper();
  3. ?>

I w layout.phtml wywołuje tą zmienną tak:
  1. <?php
  2. echo $this->zmienna;
  3. ?>

I tutaj zaczynają się problemy, próbowałem wywołać dane z helpera na 3 różne sposoby, ale tylko dwa z nich działają. Klasa helpera wygląda tak:
  1. <?php
  2.  
  3. class Zend_View_Helper_SubmenuHelper extends Zend_View_Helper_Abstract {
  4.  
  5. public function submenuHelper()
  6. {
  7. // 1 sposób- działa
  8. //$this->view->zmienna = 'Teeeest';
  9. //return $this->view->zmienna;
  10.  
  11.  
  12.  
  13. // 2 sposób- działa
  14. //$this->view->zmienna = 'Teeeest';
  15. // return $this->view->render('index.phtml');
  16.  
  17.  
  18.  
  19. // 3 sposób- nie działa
  20. return $this->view->partial('index.phtml', array('zmienna' => 'Teeeest'));
  21. }
  22.  
  23. }
  24.  
  25. ?>

3. Dlaczego 3 sposób nie działa? Gdy w layout.phtml sprawdzam co zwrócił var_dump zmiennej zmienna wyświetla że null?

4. Czy dobrze rozumiem to że w 2 i 3 sposobie przekazuje widok w którym wywołałem helpera tak? Czy jakiś 'trzeci' widok?

5. Helpery widoków służą do łączenia kodu php z kodem HTML? Tzn. czy w nich mogę umieszczać instrukcje warunkowe itp?


Teraz jeszcze mam pytania nie związane z helperami, mianowicie:
6. W książce z której się uczyłem Zenda, autor napisał:
"models/ - Klasy warstwy M zapewniające dostęp do bazy danych"
Czy to znaczy że modele są odpowiedziane tylko za dostęp do bazy danych? W takim razie gdzie powinienem obrabiać dane nie związanie z bazą danych? W kontrolerach?

7. Translacja adresów w Zendzie wygląda tak:
kontroler/akcja/zmienna1/wartosc1/zmienna2/wartosc2
Czy można inaczej ustawić adresy? Np. żeby ostatnia wartość z adresu strony wskazywała na kontroler?

8. Czy istnieje jakaś inna dokumentacja poza tą na stronie Zenda? Jak dla mnie napisana jest ona dosyć chaotycznie i trudno znaleźć to czego się szuka. Najlepszym rozwiązaniem byłby zbiór wszystich klas z wypisanymi metodami i krótkim ich opisem.


Z góry dziękuję za podzielenie się swoją wiedzą.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 22.08.2025 - 11:48