Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] tranzakcje w frontControllerze
Forum PHP.pl > Forum > PHP > Frameworki
Wolfie
Witam,

Piszę aplikację opierającą się o PHP i bibliotekę Extjs, ale to chyba na razie nic nie zmienia

Chcę skonfigurować Zenda tak, żeby przy każdym requeście rozpoczynał i kończył tranzakcję,

W pliku Bootstrap.php mam taką metodę :

  1. public function _initDispatchFrontController()
  2. {
  3. try{
  4. $db = Zend_Db_Table_Abstract::getDefaultAdapter();
  5. $db->beginTransaction();
  6.  
  7. $frontController = Zend_Controller_Front::getInstance();
  8. $frontController->dispatch()->sendResponse();
  9.  
  10. $db->commit();
  11.  
  12. }catch (Exception $e) {
  13. if (isset($db))
  14. $db->rollBack();
  15.  
  16. $response->success = false;
  17. $test = var_export($e->getMessage(), true);
  18. $response->message = $test;
  19. echo Zend_Json::encode($response);
  20. }
  21. }


No ale niestety, na bazie nic sie nie zapisuje i nie dostaję też żadnego exceptiona, w error-log dla php tez nic nie dostaję

Dziwne, bo jak robie selecty z bazy to wszystko działa, ale jak robie inserty to juz nie,

Gdy linijkę $db->commit() umieszczę przed $frontController->dispatch()->sendResponse(); wtedy z koleii działają inserty, zaś selecty zwracają błąd że nie ma aktywnej trakzakcji....

Jakieś pomysły ?
luki100011
dodaj w try
  1. echo '<h1>kod działa</h1>';


może wcale się nie odpala to tobie ?
Wolfie
Tak, przechodzi za każdym razem przy requeście

Sprawdziłem też dla pewności i normalnie echuje się , także to nie w tym problem....
zend
Transakcje powinny być w modelach, bo inaczej wyskakują takie "kwiatki". Pokaż jakie błędy zwraca aplikacja, oraz kod który działa i kod który nie działa - najlepiej w skróconej formie, a nie całe pliki. Ten kawałek który podałeś (zakładając że korzystasz z Zend_Application) jest fatalny, blokuje on możliwość wykonania kolejnych zasobów, utrudnia to późniejsze debugowanie aplikacji, takie fragmenty w ostateczności powinny się znaleźć w którymś z pluginów (mówię o transakcjach), albo najlepiej w modelach
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.