Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF] Exception w bootstrapperze
matias
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 3.10.2004

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


Na podstawie przedstawionego na stronie przykładu w bootstraperze umieściłem następujący kod

  1. <?php
  2. $front->throwExceptions(true);
  3. try {
  4. $front->dispatch();
  5. } catch (Exception $e) {
  6. // sam obsłuż wyjątki
  7. }
  8. ?>

wystarczy jeszcze dodać

  1. <?php
  2. echo $e->getMessage();
  3. ?>

i już wyświetlamy błąd ew. możemy go jakoś obsłużyć.

Pytanie moje brzmi jak z bootstrapera przekierować to do konkretnego kontrolera, który będzie odpowiedzialny za ew. przedstawianie tych błędów w bardziej ludzki sposób smile.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
yankes
post
Post #2





Grupa: Zarejestrowani
Postów: 41
Pomógł: 1
Dołączył: 13.01.2006

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


zobacz: helper kontrolera: $this->_forward

http://framework.zend.com/manual/en/zend.c...ionhelpers.html
Go to the top of the page
+Quote Post
Sabistik
post
Post #3


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

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


Nic mi nie przychodzi do głowy poza użyciem Zend_Controller_Action_Helper_Redirector()
Go to the top of the page
+Quote Post
matias
post
Post #4





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 3.10.2004

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


Wielkie dzięki za podpowiedź

Zrobiłem tak i działa, a pomysł zaczerpnąłem z http://wiktorski.us/2008/02/15/formularze-wielostronicowe/

  1. <?php
  2. try 
  3. {
  4. $frontController->dispatch();
  5. } 
  6. catch (Exception $error) 
  7. {
  8. $redirector = Zend_Controller_Action_HelperBroker::getStaticHelper('Redirector');
  9. $redirector->gotoUrl('error');
  10. }
  11. ?>

Ponieważ jestem nowicjuszem we frameworkach proszę jeszcze o podpowiedź jak w domyślnej akcji kontrolera "error" wyciągnąć błąd z Exception?

Pytanie jeszcze czy z Exception można wyciągnąć jakiś kod błędu a nie tylko komunikat poprzez $error->getMessage(); ?
Go to the top of the page
+Quote Post
Sabistik
post
Post #5


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

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


Sposób w jaki to kombinujesz nie ma sensu smile.gif Zainteresuj się lepiej pluginem Zend_Controller_Plugin_ErrorHandler
Go to the top of the page
+Quote Post
Martio
post
Post #6





Grupa: Zablokowani
Postów: 167
Pomógł: 2
Dołączył: 15.02.2004

Ostrzeżenie: (30%)
XX---


Dokładnie tak! Należy użyć domyślnie włączonego pluginu ErrorHandler, a wyjątki będą przechwycane we frontowym kontrolerze i obsługiwane w kontrolerze ErrorController lub inny wskazanym przez użytkownika. W zamyślnie developerów ZF nie mają prawa wystąpić inne wyjątki, które będą obsługiwane w bootstrapie. W praktyce warto jednak inicjalizację frontowego kontrolera wrzucić do bloku try - catch, by przechwycić wyjątki zgłoszone przez inicjalizowane obiekty w bootstrapie jak logger czy db.
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 - 07:34