service container truc?
2. Ward gaat er hier vanuit dat jij een exception handler hebt die een mooie error pagina maakt. Of dat je inderdaad de template pas onder het try..catch blok uitvoert.
Ozzie PHP op 02/10/2013 16:58:15:
@Wouter: kijk, da's een duidelijke uitleg! Maar dat zou dus betekenen, dat als ik een InputException in de kernel opvang, dat de overige code dus ook niet meer wordt uitgevoerd. En als er dan onder het try/catch blok in de kernel geen code meer staat, dan houdt het script dus gewoon op. Correct? Dus wat ik dacht te kunnen doen, kan dus niet.
Wat wil je dan precies bereiken? Als jij een methode hebt waarmee je input valideert, en je wil heel graag in je validator excepties gooien, moet je de excepties ook in je methode gaan afvangen. Anders komen ze inderdaad bij je kernel terecht
Ozzie PHP op 02/10/2013 16:58:15:
@NOLot: ik programmeer geen Java. Als je het niet erg vindt dan ga ik daar ook niet aan beginnen... :-/
Waarom niet? Die taal is heel gebruiksvriendelijk voor beginners, een stuk vriendelijker dan php, en leert je ook nog eens echt object oriented te denken.
Sommige soorten fouten wil/kun je echter misschien niet melden met een webpagina. En dat hoeft ook niet:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
class Input_Exception extends Exception
{
/**
* Bij een gewone Exception is $message optioneel. We maken $message
* hier verplicht om fouten daadwerkelijk aan gebruikers te melden.
*/
public function __construct($message, $code = 0, Exception $previous = null) {
parent::__construct($message, $code, $previous);
/**
* 403 Forbidden
*
* Er zit iemand op de server te vervelen. We vernietigen de sessie
* en weigeren het HTTP-verzoek.
*/
if ($code == 403) {
if (!headers_sent()) {
$session = new Session();
$session->destroy();
header('HTTP/1.1 403 Forbidden', true);
}
exit;
}
}
}
?>
class Input_Exception extends Exception
{
/**
* Bij een gewone Exception is $message optioneel. We maken $message
* hier verplicht om fouten daadwerkelijk aan gebruikers te melden.
*/
public function __construct($message, $code = 0, Exception $previous = null) {
parent::__construct($message, $code, $previous);
/**
* 403 Forbidden
*
* Er zit iemand op de server te vervelen. We vernietigen de sessie
* en weigeren het HTTP-verzoek.
*/
if ($code == 403) {
if (!headers_sent()) {
$session = new Session();
$session->destroy();
header('HTTP/1.1 403 Forbidden', true);
}
exit;
}
}
}
?>
Het was erg verhelderend :-)
Many thanks allemaal!!!
waarom leer je dan geen Ruby? Nog gebruikersvriendelijker en nog meer OO
Ik ben van huis uit geen programmeur. Ben al lang blij dat PHP een beetje wil lukken ;)
Heb nu geen behoefte aan het leren van een nieuwe taal, maar wel aan het optimaliseren van m'n PHP.
Wouter J op 02/10/2013 17:11:12:
waarom leer je dan geen Ruby? Nog gebruikersvriendelijker en nog meer OO
Ruby zou ook kunnen. Zelf heb ik het met java geleerd dus ik neig wat meer naar java. Maar laatst had ik een tutorial van ruby gevolgd en het is zeker een vette taal. Vooral die syntax is erg overzichtelijk