ik heb de volgende classe
binnen de methode open_cat_content wil ik graag checken of de database inhoud bevat overeenkomend het ID ($this->open(ID)), dit kan het beste met het returnen van true or false.
echter vanuit een functie buiten de klasse, wil ik graag een degelijk foutafhandeling hebben:
hoe kan ik deze twee methodes het beste combineren, of is het juist onzinnig om exceptions te gebruiken in deze opzet? OF kan ik de exceptions binnen de klasse al afvangen? In plaats van checken op true or false.
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
| <? require_once(dirname(__FILE__) . "/../globalConfig.php"); class category extends Explorer { protected $id = null; //Open cat from database public function open($id) { $mysqli = $this->dbConnect(); $result = $mysqli->query("SELECT * FROM " . _CATEGORIES . " WHERE cat_id = '" . $id . "'"); if($mysqli->error) { return false; //throw new Exception("MySQL error $mysqli->error \n $mysqli->errno"); } else { if($result->num_rows == 1) { //stop data in object of array } else return false; //throw new Exception("Tabel is leeg"); } $result->close(); $mysqli->close(); } //Open cat content from database public function open_cat_content($id=0) { if($this->open($this->id) == false) { $this->id = $id; $this->parent_id = 0; } //haal nog wat andere data op, prop het in array contents return $this->contents; } } ?> |
binnen de methode open_cat_content wil ik graag checken of de database inhoud bevat overeenkomend het ID ($this->open(ID)), dit kan het beste met het returnen van true or false.
echter vanuit een functie buiten de klasse, wil ik graag een degelijk foutafhandeling hebben:
PHP:
1
2
3
4
5
6
7
| try { $category = new category(); $category->open(5); //print data uit object } catch(Exception $e){print $e->getError();} |
hoe kan ik deze twee methodes het beste combineren, of is het juist onzinnig om exceptions te gebruiken in deze opzet? OF kan ik de exceptions binnen de klasse al afvangen? In plaats van checken op true or false.
A smooth sea never made a skilled sailor