Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF] Jak wyciągnąć pewną zmienną...
Forum PHP.pl > Forum > PHP > Frameworki
Geo
Mam dość nietypowy problem. Potrzebuję pobrać wartość pewnej zmiennej, która przekazywana jest w adresie (na początku, np.: /:zmienna/:kontroler/:akcja). Niby nic nadzwyczajnego, problem polega jednak na tym, że muszę ją pobrać zanim nastąpi proces dispatchingu, w czasie którego Zend Controller podzieli sobie adres na zmienne wg routera. Czy ktoś ma jakiś pomysł na zdobycie wartości tej (pewnej) zmiennej?

Kod
//Generalnie w kontrolerze można by to zrobić np. tak:
$zmienna = Zend_Controller_Action::_getParam('zmienna');


Z góry dzięki za pomoc! smile.gif
NoiseMc
  1. <?php
  2.  
  3. class MyPlugin extends Zend_Controller_Plugin_Abstract
  4. {
  5. function preDispatch(Zend_Controller_Request_Abstract $request)
  6. {
  7. $twojaZmienna = $request->getParam ('TwojaZmienna');
  8.  
  9. Zend_Registry::set ('TwojaZmienna', $twojaZmienna);
  10.  
  11. print (Zend_Registry::get ('TwojaZmienna'));
  12. }
  13. }
  14.  
  15. ?>

Bootstrap:
  1. <?php
  2. $frontController->registerPlugin (new MyPlugin ());
  3. ?>


No i potem jak dispatch robisz to zanim zaczna tworzyc sie obiekty akcji widoku zbierasz sobie parametr. Musi byc dispatch wywolany bo wtedy kontroler sobie urla rozbiera na parametry, jezeli chcesz wyciagnac te zmienne zanim kontroler zacznie dzialac to musisz niestety $_GET['arg'] i explode () ale w zasadzie nie powinny byc Ci potrzebne parametry nigdzie poza akcjami i filtrami.

Cos takiego:
  1. <?php
  2. $zmienna = Zend_Controller_Action::_getParam('zmienna');
  3. ?>

wogole nie istnieje bo obiekt request jest tworzony podczas dispatch a potem tworzony jest obiekt akcji ktory dostaje obiekt request i dopiero wtedy mozesz sobie wyciagnac parametry.
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.