Versio

Juist gebruik OOP

Overzicht Reageren

Han eev

Han eev

23/01/2008 17:28:00
Quote Anchor link
Hallo,

Ik ben nu druk bezig met OOP.
Natuurlijk wil ik het goed leren, maar nu heb ik wat vragen. (ik heb geen ervaring met OOP (wel hoe het werkt, maar niet goed gebruik ervan))

Voorbeeldje,

Je wil alle regexen bij elkaar hebben, dus in 1 bestand dat je alles goed kan scheiden. Omdat je ze misschien wel op meerdere plekken nodig hebt.

Je kan dat op 2 manieren doen.

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?PHP
class Regex {

    public function Email() {
        return '#[reg van email#i';
    }

    public function Nummers() {
        return '#^[0-9]$#';
    }

    // enz...
}
?>


ik typ hier verder.
Je kan natuurlijk dit doen,

<?PHP
    if(ereg(Regex::Email(),'email')) {
        echo 'Goede email :)';
    }
    
?>


Wat ook kan is dat je dit doet,
<?PHP
class Check {
    public function Email($mail) {
        if(ereg(Regex::Email(),$mail)) {
            return true;
        }
else {
            throw new Exception('Foute email');
            return false;
        }
    }
}


en dan dit
if(Check::Email($mail)) {
    echo 'goed';
}
[
/code]

Volgens mij is het 2e voorbeeld beter

Dan nog een stukkie over exceptions
Namelijk

[code]<?PHP
    
    try {
    Check::Email('fouteemailadres');
    echo 'Goede email';
    }

    catch(Exception $e) {
    echo $e->getMessage();
    }
    
// Of
    Zonder try,

?>


Kortom, wanneer wel exceptions gebruiken, en wanneer niet?
Ik ben er niet over uit, je kan natuurlijk altijd exceptions gebruiken en daar zelfs de user interface errors mee doen.
maar je kan er ook alleen code errors neer zetten. Waarvoor zijn ze nou echt?

Misschien voorbeeld uit andere scripttaal?

Ook nog één klein dingetje.
Als je bijvoorbeeld een database class hebt.

En die moet toegankelijk zijn in alle classen van een module.
Hoe pak je dat aan? Je kan elke module class de controller class (-> die de database in een var heeft staan) extenden, en dan daarmee werken.
Of ...?

Ik hoop wat antwoorden te vinden :)

Gr Han

// Klaar
Gewijzigd op 01/01/1970 01:00:00 door Han eev
 
PHP hulp

PHP hulp

25/05/2012 02:07:57
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Jonathan -

Jonathan -

23/01/2008 17:35:00
Quote Anchor link
Zet de regexen in constante. Kan je ze ook gebruiken in een formhandler.
 
Han eev

Han eev

23/01/2008 18:35:00
Quote Anchor link
Bedoel je dan dit?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?PHP

class test {
CONST blabla = 'tes';
}


?>


Waarom worden er op mijn problemen zo weinig gepost :P Altijd zo ^^
Gewijzigd op 01/01/1970 01:00:00 door Han eev
 
Stien ss

stien ss

23/01/2008 19:46:00
Quote Anchor link
Ik gebruik altijd een Validator class:

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
<?php
abstract class Validator {

     public static function isEmail ( $email ) {
          return pregmatch ( '//', $email );
  
    }

}


werkt simpel, je doet gewoon:

$valid = Validator::isEmail ( 'blaat' );

?>
 
Jelmer rrrr

Jelmer rrrr

23/01/2008 20:52:00
Quote Anchor link
of je maakt een klasse validator, en voor ieder filter maak je een uitbreiding daarop. Het object kan dan controleren of de waarde voldoet. Voordeel: je kan een validator als argument meegeven, en je kan enorm complexe filters met allemaal instellingen maken.

En wat betreft extenden: Alleen bij "is een", nooit bij puur "gebruikt een". Dus als je modulle een controller is, dan mag het.
 



Overzicht Reageren

Get Adobe Flash player