2010-02-28 20 views

Odpowiedz

7

W kontrolerze można uzyskać dostęp ViewHelpers przez

$this->view->gravatar($email) 

danego modelu nie powinna wywołać metody z widokiem, jak to powiązać model do warstwy prezentacji. Widok może wiedzieć o modelu, ale model nie powinien wiedzieć o widoku.

Dla Gravatars, istnieje również obsługa i widok Pomocnik w tworzeniu:

+0

Gdzie zatem powinna działać ta gravatar? Musi być dostępny w częściach mojej modularnej strony internetowej – bluedaniel

+0

@bluedaniel nie może powiedzieć bez znajomości twojej aplikacji. Jeśli masz pewność, że potrzebujesz tego w modelu, np. jako część logiki domeny, uczyń Gravatar usługą w swoim modelu lub dodaj getGravatar() do klasy, która go nazywa. – Gordon

+0

jest w zbyt wielu modelach do skopiowania/wklejenia do każdej klasy, ale gdzie byłby to serwis w sieci? – bluedaniel

0

W sterowniku:

$this->view->gravatar(); 

W modelu (Gordon ma rację, że nie należy robić w ogóle):

Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer')->getView()->gravatar() 

lub po prostu dzielić Zend_View instancji poprzez Zend_Registry. Jeśli nie masz instancji View, możesz bezpośrednio utworzyć instancję jak $ g = new View_Helper_Gravatar(). Aby go załadować, możesz użyć Zend_Loader_PluginLoader.

1

Lepszym sposobem, aby upewnić się, że "rzecz" z widoku jest faktycznie pomocnikiem widoku, jest użycie metody getHelper("helperName");.

$this->view->getHelper('gravatar'); 
Powiązane problemy