Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZendFramework] Jak można utworzyć instancję klasy Zend_Controller_Action, coś jak: $iZCA = new Zend_Controller_Action();
Sajrox
post
Post #1





Grupa: Zarejestrowani
Postów: 254
Pomógł: 7
Dołączył: 9.10.2007
Skąd: Poznań

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


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


Go to the top of the page
+Quote Post
LBO
post
Post #2





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


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.
Go to the top of the page
+Quote Post
Sajrox
post
Post #3





Grupa: Zarejestrowani
Postów: 254
Pomógł: 7
Dołączył: 9.10.2007
Skąd: Poznań

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


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.
Go to the top of the page
+Quote Post
seth-kk
post
Post #4





Grupa: Zarejestrowani
Postów: 444
Pomógł: 79
Dołączył: 26.05.2009

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


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


--------------------
Go to the top of the page
+Quote Post
Sajrox
post
Post #5





Grupa: Zarejestrowani
Postów: 254
Pomógł: 7
Dołączył: 9.10.2007
Skąd: Poznań

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


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..

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 Aktualny czas: 20.08.2025 - 01:00