Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF][ZendFramework]Problem z redirectorem
Forum PHP.pl > Forum > PHP > Frameworki
nid3
Mam pytanie. Mam włączony PHPfirebug w ZF. Po edycji contenta i zapisaniu danych w bazie danych
mam wpis
  1. $r = Zend_Controller_Action_HelperBroker::getStaticHelper('Redirector');
  2. $r = Zend_Controller_Action_HelperBroker::getStaticHelper('flashMessenger');
  3. $r->addMessage('Zapisano zmiany');
  4.  
  5. $r->gotoSimple('index', 'admin', 'content', array('page' => $page));


no i dostaje TAKI wpis we firePHP -->obrazek w załączniku. Tak jakby moje akcje się wykonywały 2 razy!!!! czy ja jestem przewrażliwony?


<a href="http://i42.tinypic.com/160979f.png">obrazek</a>

Kontroler w której jest ta akcja dziedziczy po Zend_Controller_action.

Nawet nie wiem co wpisać w google aby mi pomogło.
snapshot
U mnie jest podobnie, więc nie ma co się tym przejmować.

Nie wiem, czy ten kod to jest wycięty, czy przepisany ręcznie, ale nadpisujesz zmienną $r helperem FlashMessenger smile.gif Helpery możesz wywoływać również tak (w przypadku FM):
  1. $this->helper->flashMessenger('Wiadomosc');
nid3
Cytat(snapshot @ 30.03.2012, 11:57:04 ) *
U mnie jest podobnie, więc nie ma co się tym przejmować.

Nie wiem, czy ten kod to jest wycięty, czy przepisany ręcznie, ale nadpisujesz zmienną $r helperem FlashMessenger smile.gif Helpery możesz wywoływać również tak (w przypadku FM):
  1. $this->helper->flashMessenger('Wiadomosc');


Widzisz, troche jest bo np przy forwardzie nie ma podwujnego wpisu (bo sprawdzałem:)). Przy szybkich zapytaniach nie ma znaczenia, ale jak jest kilka selectow z inner joinami każda sekunda ma znaczenie. A te dublowanie sie zmiennej to tylko przykładowy kod. Ale głównie chodzi o to że mam Klasę X która dziedziczy po klasie abstrakcyjnej Y a ta dziedziczy po klasie Zend_Controller_action. I myślałem że to jest powodem. Jednak Zmieniłem dziedziczenie klasy X na Zend_controller_action i nadal jest to samo. Nie chce $this->forward bo ma mi wyczyścic dane z POSTA.

Mam wrażenie że akcja init z klasy abstrakcyjnej (i z klasy X) jest wykonywana podwójnie, przynajmniej ten wpis ze screen shota tak pokazuje. Sprawdzę jeszcze na zwykłym liczniku opartym na sesji czy inkremetacja jest o jeden czy o 2 jakby sugerowal FirePHP.

Jeśli jest rozwiązanie problemu (? nie wiem czy to jest problem:/) chętnie rozwinę temat.
snapshot
Zauważ, że czasy są identyczne w logu. Pewnie chodzi o to, że firePHP dostaje adres normalny, potem następuje przekierowanie i dostaje kolejny nagłówek. Potem przypisuje do obydwu zapytań te same dane logów. Ale zawsze możesz sprawdzić i dać znać wink.gif
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.