Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] Jak można utworzyć instancję klasy Zend_Controller_Action
Forum PHP.pl > Forum > PHP > Frameworki
Sajrox
Witam,

Potrzebuję utworzyć instancję klasy Zend_Controller_Action
Jednak ze względu że jest to klasa abstrakcyjna jest to niemożliwe. Po prostu chciałbym dokonać coą takiego:

  1. $iZCA = new Zend_Controller_Action();
  2. $iZCA->getRequest()->getParams();
  3. ...
  4. // Chciałbym mieć instancję klasy Zend_Controller_Action aby móc wywoływac jej metody, odpada dziedziczenie po tej klasie


Czy jest jakaś metoda questionmark.gif Może jest jakaś inna klasa z podobnymi metodami questionmark.gif


LBO
Request jest obiektem, który krąży wewnątrz aplikacji. Jest kilka miejsc - prócz akcji - gdzie możesz go przechwycić. Nie używam ZF, ale chyba powinien być dostępny we front kontrolerze. Request przekazywany jest również do pluginów.

Czasami nie zaszkodzi spojrzeć w kod frameworka.
Sajrox
Rozwiązałem to troche inaczej. Ale dzięki za odzew smile.gif

A więc mój sposób:
w Kontrolerze głównym który jest dziedziczony przez wszystkie inne Kontrolery. Dodałem:
  1. Zend_Registry::set('request', $this);


Tym samym cały obiekt ten klasy wraz z Zend_Controller_action po którym dziedziczy mój głowny kontroler przekazałem do rejestru. iewiem czy to jest wydajne rozwiązanie ale działa.
W przyszłości na pewno będę musiał jeszcze to zoptymalizować aby nie trzymać tego w rejestrze.
seth-kk
i to wszstko po to zeby miec dostep do danych z requesta w dowolnym miejscu? troche zakrawa to o masochizm zwlaszcza ze mozesz miec kilka controllerow w kolejce
Sajrox
Faktycznie, takie rozwiązanie powodowało zwiększenie zajętości pamięci.

Było mi to potrzebne do tego bo chciałbym utworzyć klasę Function i w niej umieścić swoje metody statyczne któe potem chciałem wyciagać za pomocą
  1. // Przekierowanie na inny adres
  2. Function::go('','','');
  3. // itp..


teraz po prostu utworzyłem Helpera w którym trzymam te same funcje ale za to mam dostęp do tego co potrzebowałem smile.gif
  1. // Przekierowanie na inny adres przy pomocy helpera
  2. $this->getHelper('Functions')->go('this', 'lista', array('add'=>true))
  3. // itp..

troche więcej pisania ale za to działa i nie zabija serwera winksmiley.jpg





Po prostu przyzwyczaiłem się do swoich własnych nazw i cięzko zapamiętać tertaz te zendowskie funkcje np: setGotoRoute() itp..

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.