Juist gebruik OOP
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.
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)
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
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
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
Gesponsorde koppelingen:
Zet de regexen in constante. Kan je ze ook gebruiken in een formhandler.
Bedoel je dan dit?
Waarom worden er op mijn problemen zo weinig gepost :P Altijd zo ^^
Waarom worden er op mijn problemen zo weinig gepost :P Altijd zo ^^
Gewijzigd op 01/01/1970 01:00:00 door Han eev
Ik gebruik altijd een Validator class:
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.
En wat betreft extenden: Alleen bij "is een", nooit bij puur "gebruikt een". Dus als je modulle een controller is, dan mag het.



