zend framework try catch / 404 probleem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ozzie PHP

Ozzie PHP

25/11/2010 16:58:27
Quote Anchor link
Ik wil met behulp van zend framework een site maken. Nu heb ik een try en catch gemaakt en de foutafhandeling wil ik zelf doen met een eigen error class.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
try {
  // voer code uit
}
catch (Error $error) {
  $error->execute(); // voer de execute functie van mijn eigen error class uit
}


So far so good, maar nu het probleem. Ik gebruik ook de ErrorController van ZF. In deze class zit een errorAction() waarmee ik een 404 pagina toon. Hartstikke mooi. Echter, als zich een error voordoet, wordt niet mijn eigen error class getriggerd, maar de errorAction() in de ErrorController. In plaats van dat er een foutmelding wordt getoond, wordt nu de 404 pagina getoond.

Inmiddels ben ik zover dat ik de errorafhandeling van ZF kan uitzetten via $front->throwExceptions(true). Mooi, nu doet m'n eigen Error class het weer, maaaaar... de 404 pagina werkt nu niet meer... grrrr!!!

Wat moet ik doen om m'n eigen error class errors te laten gooien, maar ZF wel 404 pagina's te laten tonen?
Gewijzigd op 25/11/2010 16:59:15 door Ozzie PHP
 
PHP hulp

PHP hulp

24/11/2024 11:11:20
 
Chris -

Chris -

25/11/2010 17:01:20
Quote Anchor link
Je hebt juist een errorAction zodat je zelf geen class daarvoor hoeft te gebruiken. Je kan in die action en view alles customisen, dus waarom doe je dat niet?

Oftewel, wat heeft jouw foutafhandeling als pluspunt tegenover die van Zend?
 
Ozzie PHP

Ozzie PHP

25/11/2010 17:04:04
Quote Anchor link
Ik had die class ooit al eens half gebouwd, dus vandaar eigenlijk. Maar oke, ik wil best jouw tip in overweging nemen en de Zend class gebruiken, maar als ik een error throw dan moet mijn error getoond worden en niet de 404 pagina zoals nu het geval is. Als jij weet hoe dat onderscheid gemaakt moet worden???
 
Synaps Framework

Synaps Framework

25/11/2010 19:27:14
Quote Anchor link
Hoe start jij je app op de landingspage? via Zend_Controller_Front class?
 
Ozzie PHP

Ozzie PHP

25/11/2010 19:32:59
Quote Anchor link
Ik gebruik wel zend controller front, maar ik weet niet of je dat bedoelt. Weet jij het antwoord op mijn vraag?
 
Synaps Framework

Synaps Framework

25/11/2010 19:50:23
Quote Anchor link
Op je landing page kun je het volgende doen als je dispatch van de front controller gebruikt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
try {
    $oControllers->dispatch();
} catch( Zend_Exception $e ) {
    if( strpos( $e->getMessage(), 'Invalid controller specified' ) ) {
        //error 404
    }
}
 
Ozzie PHP

Ozzie PHP

25/11/2010 19:53:40
Quote Anchor link
Thanks, maar dit is toch een beetje een kromme manier van foutafvanging? Kijken of een bepaald stukje tekst in een error message zit? Is er niet een betere manier?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.