service container truc?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3

Wouter J

Wouter J

02/10/2013 17:06:23
Quote Anchor link
1. Ja, correct. Daarom is het dus niet verstandig een try..catch blok om je hele code heen te zetten, zet ze op die plaatsen waar je een fout kan oplossen of waarbij je hetgeen de fout veroorzaakte niet meer nodig had.

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.
 
PHP hulp

PHP hulp

07/05/2024 14:55:56
 
NOLot -

NOLot -

02/10/2013 17:08:46
Quote Anchor link
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.
 
Ward van der Put
Moderator

Ward van der Put

02/10/2013 17:10:35
Quote Anchor link
Foutmeldingen zoals ongeldige invoer wil je vroeg of laat melden. Dus ja, als jouw core/kernel een webpagina produceert op basis van (ongeldige) input, dan hoort een Input_Exception daarin te voorschijn te komen.

Sommige soorten fouten wil/kun je echter misschien niet melden met een webpagina. En dat hoeft ook niet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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;
        }
    }
}

?>

 
Ozzie PHP

Ozzie PHP

02/10/2013 17:10:36
Quote Anchor link
Dankjewel! Ik geloof dat ik het nu wel snap.
Het was erg verhelderend :-)


Many thanks allemaal!!!
 
Wouter J

Wouter J

02/10/2013 17:11:12
Quote Anchor link
waarom leer je dan geen Ruby? Nog gebruikersvriendelijker en nog meer OO
 
Ozzie PHP

Ozzie PHP

02/10/2013 17:14:27
Quote Anchor link
Offtopic:

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.
 
NOLot -

NOLot -

02/10/2013 17:16:24
Quote Anchor link
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
 

Pagina: « vorige 1 2 3



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.