Classes intro

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET ontwikkelaar start jij in een ontwikkelteam met 7 .NET developers. In ons team werken er drie senior .NET developer, twee medior .NET developers en twee junior .NET developers. Er is dan ook genoeg senioriteit in ons team om jou te kunnen bieden wat jij nodig hebt! Wij werken in scrum en hebben drie wekelijkste sprints. Daarnaast doen wij minimaal vier keer per jaar een release. Ons platform is ontzettend complex en groot. Het is dan ook in het begin belangrijk dat jij de processen gaat begrijpen. Jij krijgt dan ook een cursus om beter te begrijpen

Bekijk vacature »

Back-end Developer

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een gewaardeerde werkgever in regio Oosterhout zijn wij op zoek naar een back-end developer. Kennis of ervaring met C# & SQL is een must! Je bent verantwoordelijk voor de beheer en ontwikkeling van de software; Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je test de software en ontwikkelt deze door; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten; Je brengt de aanpassingssuggesties van klanten in kaart, om

Bekijk vacature »

Junior Developer Low-code

Dit ga je doen Low-code ontwikkeling van software voor landelijk bekende organisaties; Samenwerken in een team van 10 collega's; Opleveren van mooie eindproducten, middels de Agile methodiek; Direct contact met de eindklant over de gewenste oplossingen. Hier ga je werken Als startende IT-professional kom je te werken in de regio van Lelystad bij een organisatie die met toonaangevende klanten uit heel Nederland samen werkt. De producten en diensten van de organisatie bereiken miljoenen Nederlanders. Hierbij komt een grote hoeveelheid informatie kijken en deze moet discreet en veilig verwerkt worden. De processen die hierbij horen worden door het IT team vormgegeven.

Bekijk vacature »

Traineeship ICT regio Amsterdam/Utrecht

Wat ga je doen? Het traineeship begint met een fulltime maand cursussen en praktijkdagen, waarin je de basis van het IT-vak leert op de Shared Servicedesk (SSD). Daarnaast ga je meteen aan de slag voor je eerste certificering! (ITILv4). Je start in een groep met 4 tot 10 deelnemers, waarmee jij gedurende die maand optrekt en je kennis kunt delen. Na het voltooien van de eerste maand ga je direct voor een langere periode aan de slag bij één van onze klanten of blijf je intern bij ons op de Shared Servicedesk. Je bent het eerste aanspreekpunt van de eindgebruikers

Bekijk vacature »

Senior Developer Betty Blocks Blauwe Haven Rotterd

Functieomschrijving Voor de Politie zijn wij opzoek naar een Senior Developer Betty Blocks Blauwe Haven Rotterdam. De politieorganisatie heeft jaarlijks te maken met een aanzienlijk aantal politiemedewerkers die vanwege mentale overbelasting niet of beperkt inzetbaar zijn. De Blauwe Haven Rotterdam ondersteunt deze politiemedewerkers in hun herstel en re-integratieproces. De huidige digitale systemen van de Politie bieden onvoldoende ondersteuning in het herstel- en re-integratieproces van politiemedewerkers. Zowel voor de politiemedewerkers als voor de organisatie. Politiemedewerkers worden buitengesloten, waardoor zij eigen regie verliezen. Begeleiders kunnen de voortgang van de medewerkers niet goed monitoren. Management beschikt niet over de mogelijkheid trends te signaleren

Bekijk vacature »

HBO startersfunctie .NET Ontwikkelaar

Functie omschrijving We are looking for a dutch native speaker Ben je in januari 2023 klaar met je HBO opleiding en zoek je een mooie uitdaging? Wacht niet langer en solliciteer direct! Voor een familiebedrijf in de regio van Boxtel ben ik op zoek naar een C#.NET Ontwikkelaar. Jij gaat aan de slag met de (door)ontwikkeling van de maatwerksoftware projecten en gaat ook nieuwe software bouwen, middels de Microsoft-stack. Het bedrijf maakt gebruik van de volgende technieken: C# & ASP.NET; MVC; MS SQL; Entity Framework; Je krijgt hier veel tijd om te leren en eventueel door te groeien en het

Bekijk vacature »

Software Programmeur

Functie omschrijving Ben jij op zoek naar een organisatie waar je samen met een team werkt aan iets moois en waar je naast hard werken ook hard kunt lachen? Dan ben je hier aan het juiste adres! Voor een informeel IT-bedrijf in omgeving Wassenaar zijn wij op zoek naar versterking. Ben jij op zoek naar een nieuwe uitdaging als Software Programmeur lees dan snel verder! Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Fullstack developer

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en zou jij graag bij een platte maar informele organisatie werken? Voor een mooi softwarebedrijf in omgeving Alblasserdam zijn wij op zoek naar versterking op de afdeling Software Development! Als Fullstack react.js developer wordt je bij dit bedrijf onderdeel van de volledige ontwikkeling van requirement tot oplevering! Jouw focus ligt op de front end en alles wat daarbij komt kijken. Je gaat ontwerpen, ontwikkelen, testen en valideren. Je zult voornamelijk werken met React.js en Typescript. Maar ook Javascript, HTML en CSS komen aanbod. Daarnaast zal je ook regelmatig met de back

Bekijk vacature »

SQL Developer

Functie omschrijving Altijd al willen werken bij een snelgroeiend bedrijf, actief in de logistieke sector? Dit is je kans! Ik ben op zoek naar een ervaren SQL Developer in de omgeving Tilburg. Dit bedrijf is gespecialiseerd in in de ontwikkeling van software en maatwerk oplossingen voor het automatiseren van logistieke processen. Klanten zijn o.a. BOL en andere grote distributiecentrums. Jouw taken worden vooral: Verantwoordelijk voor ontwikkelen van stored procedures, voor snelle afhandeling van data; Optimalisatie van de SQL query's en T-SQL query's; Jij gaat je bezig houden met ontwerpen, ontwikkelen en optimaliseren van de MS SQL Databases; In deze functie

Bekijk vacature »

Software Developer / .NET / Azure

Dit ga je doen Als Lead .NET Software Developer zal je je bezig houden met: Het vertalen van bedrijfswensen naar een technische roadmap; Uitwerken van nieuwe architectuur / designs; Het team aansturen en motiveren; Toezien op de kwaliteit van de code; Mee ontwikkelen van nieuwe features en applicaties. Hier ga je werken Deze organisatie is op dit momenteel marktleider in het ontwikkelen van productielijnen voor de voedselindustrie en heeft een wereldwijd klantnetwerk. Binnen deze organisatie is het team van software developers dagelijks bezig met het ontwikkelen van maatwerk oplossingen om alle productiemachines aan te sturen, maar ook bedrijf kritische applicaties

Bekijk vacature »

Software Developer C# .NET

Functie omschrijving Zoek jij een nieuwe uitdaging binnen development waar je komt te werken binnen een flexibel, jong en ondernemend bedrijf? Wij zijn voor deze functie op zoek naar een C# .NET Developer die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Verder begeleid je complexe projecten, ben jij iemand die altijd kansen ziet? Dan zoeken wij jou! Verder ga jij je bezighouden met: Het verbeteren van functionaliteiten binnen het dataplatform; Meedenken in oplossingsrichtingen; Werken aan de architectuur; Ontwikkelen van nieuwe technologieën. Bedrijfsprofiel Waar ga je werken? De organisatie waar je voor gaat werken heeft een onafhankelijk

Bekijk vacature »

Java Developer

Java Developers opgelet! Bij Luminis zijn ze opzoek naar jou. Lees de vacature en solliciteer direct. Luminis is een software- en technologiebedrijf met meerdere vestigingen. Vanuit deze vestigingen werken 200 professionals aan technisch hoogwaardige oplossingen voor klanten zoals KLM, Nike en Bol.com. Ook ontwikkelt Luminis eigen oplossingen op het gebied van cloud, Internet of Things, data intelligence, e-sports en e-learning. Luminis onderscheidt zich door aantoonbaar voorop te lopen in technologie en innovatie. Luminis heeft drie kernpunten die verankerd zitten in alles wat we doen: het omarmen van nieuwe technologie, meesterschap en kennis delen. Functiebeschrijving First things first! Het is belangrijk

Bekijk vacature »
Dennis Achternaam

Dennis Achternaam

22/09/2017 03:44:51
Quote Anchor link
Hallo allemaal,

Voor een introductie in classes / OOP moet ik ervaring opdoen met classes.
Opdracht: classes maken voor ophalen, toevoegen, updaten, verwijderen van gegevens uit de verschillende database tabellen.

mijn idee was:
Eerst een database class maken voor connectie, simpel beginnen.
Dit gedaan en geprint, komt een keurig object uit. daarentegen snap ik nog niet hoe ik dit toepas.
Heb simpelweg de file gerequired en de code aangepast maar krijg nu 3 foutmeldingen:
mysqli_query() expects parameter 1 to be mysqli, object given in C:\wamp64\www\formulier.php on line 120
Undefined variable: sql3 in C:\wamp64\www\formulier.php on line 139
mysqli_error() expects parameter 1 to be mysqli, object given in C:\wamp64\www\formulier.php on line 139

ik heb nog gebrek aan inzicht mbt het toepassen van mijn class, maar dat de $sql3 niet goed zou zijn vind ik erg raar.. wat ben ik vergeten/doe ik fout?

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
16
17
18
19
20
21
22
23
24
<?php
class database {

var
$db_connection = FALSE;    
var
$db_host = "localhost";
var
$db_username = "root";
var
$db_pass = "root";
var
$db_name = "opdracht";

    function
__construct (){
        $this->createConnection();
    }
    
    function
createConnection() {
        $this->db_connection = mysqli_connect($this->db_host,$this->db_username,$this->db_pass,$this->db_name);
    }
    
    function
getConnection() {
        return $this->db_connection;
    }
}


$connection = new database();
?>


formulier.php:
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
<?php

    include_once('header.php');
    require ('test2.php');
    //todo: include class met databasefuncties
    
// zodra submit wordt gedrukt, stop input in variabelen voor verificatie en verzending naar database

if(isset($_POST['submit'])){
        $voornaam = ($_POST["Voornaam"]);
        $achternaam = ($_POST["Achternaam"]);
        $straat = ($_POST["Straat"]);
        $plaats = ($_POST["Plaats"]);
        $email = ($_POST["Email"]);
        $telefoon = ($_POST["Telefoon"]);
        // todo: bestandsnaam /&bestand
        
//define test input functie voor validatie, 3 soorten type input verwacht (varchar-tekst, varchar-email, int-telefoon

    function test_input($var,$soort){
    if ($soort == 'tekst'){
        if(preg_match("/^[a-zA-Z -]*$/",$var) == FALSE)
        return FALSE;
    }
elseif ($soort == 'email'){
        if(filter_var($var, FILTER_VALIDATE_EMAIL) == FALSE){
            return FALSE;
        }
    }

    elseif($soort == 'telefoon'){
    if(preg_match('/^[0-9]{10}$/',$var) == FALSE)
        return FALSE;
    }

    else {
        return TRUE;
    }
    }

    //?todo: validatie bestandtype, overzichtelijk of toch in aparte upload file?
    
// create error voor als leeg, validatie ja, validatie nee, voor elke variabele.
// todo: toevoegen errors voor bestandsvariabelen, tododo: vervangen in array voor overzichtelijkheid

$error = FALSE;
    if (empty($voornaam)) {
        $voornaamerr = "<li>Voornaam is verplicht</li>";
        $error = TRUE;
    }

    elseif (test_input($voornaam, 'tekst') === FALSE) {
        $voornaamerr = "<li>Voornaam ongeldig</li>";
        $error = TRUE;
    }

    else {
        $voornaamerr = "";
    }

    
    if (empty($achternaam)) {
        $achternaamerr = "<li>Achternaam is verplicht</li>";
        $error = TRUE;
    }

    elseif (test_input($achternaam, 'tekst') === FALSE) {
        $achternaamerr = "<li>Achternaam is ongeldig</li>";
        $error = TRUE;
    }

    else {
        $achternaamerr = "";
    }

    
    if (empty($straat)) {
        $straaterr = "<li>Straat is verplicht</li>";
        $error = TRUE;
    }

    elseif  (test_input($straat, 'tekst') === FALSE) {
        $straaterr = "<li>Straatnaam is ongeldig</li>";
        $error = TRUE;
    }

    else {
        $straaterr = "";
    }

        
    if (empty($plaats)) {
        $plaatserr = "<li>Plaats is verplicht</li>";
        $error = TRUE;
    }

    elseif  (test_input($plaats, 'tekst') === FALSE) {
        $plaatserr = "<li>Plaatsnaam is ongeldig</li>";
        $error = TRUE;
    }

    else {
        $plaatserr = "";
    }

    
    if (empty($email)) {
        $emailerr = "<li>Email is verplicht</li>";
        $error = TRUE;
    }

    elseif  (test_input($email, 'email') === FALSE) {
        $emailerr = "<li>Email is ongeldig</li>";
        $error = TRUE;
    }

    else {    
    $emailerr = "";
    }

    
    if (empty($telefoon)) {
        $telefoonerr = "<li>Telefoonnummer is verplicht</li>";
        $error = TRUE;
    }

    elseif  (test_input($telefoon, 'telefoon') === FALSE) {
        $telefoonerr = "<li>Telefoonnummer is ongeldig</li>";
        $error = TRUE;
    }

    else {
        $telefoonerr = "";    
    }


// wanneer error niet aanwezig, verwerk gegevens in database, wanneer wel, creeer error en geef deze weer via errormelding
    if(!$error){
        //todo: Doe de post shit naar database via class

        // oude/huidige sql: insert query in losse variabelen stoppen, per databasetabel dmv loop

        $sql1 = "INSERT INTO persoonsgegevens(voornaam,achternaam) VALUES('$voornaam','$achternaam')";
        
        if (mysqli_query($connection, $sql1)) {
            
            $user_id = mysqli_insert_id($connection);
            $sql2 = "INSERT INTO contactgegevens (email,telefoon,user_id) VALUES('$email','$telefoon','$user_id')";
            //vraagje: kan de $user_id declaratie beter bij persoonsgegevens query weergeven ofniet?
            
            if (mysqli_query($connection, $sql2)) {
        
                $sql3 = "INSERT INTO adresgegevens (straat,plaats,user_id) VALUES('$straat','$plaats','$user_id')";
                if (mysqli_query($connection, $sql3)) {
                    echo '<p style="width:100%; padding:10px; background-color:#32beeb;color:#000000;text-align:center;">Gelukt!</p>';
                    header ("Refresh: 3 url=overzicht.php");
                }
else {
                    echo "Error: " . $sql1 . "<br>" . mysqli_error($connection);
                }
            }
else {
                echo "Error: " . $sql2 . "<br>" . mysqli_error($connection);
            }
        }
else {
            echo "Error: " . $sql3 . "<br>" . mysqli_error($connection);
        }
    }
else{
        // create 1 errormelding voor implementatie, combineer losse errors van elke variabele string (.=) om zo en kleine, overzichtelijke PHP code in de HTML shell te krijgen
        $errormelding = '<ul>';
        if(isset($voornaamerr) && !empty($voornaamerr)){
            $errormelding .= $voornaamerr;
        }

        if(isset($achternaamerr) && !empty($achternaamerr)){
            $errormelding .=  $achternaamerr;
        }

        if(isset($straaterr) && !empty($straaterr)){
            $errormelding .=  $straaterr;
        }

        if(isset($plaatserr) && !empty($plaatserr)){
            $errormelding .=  $plaatserr;
        }

        if(isset($emailerr) && !empty($emailerr)){
            $errormelding .=  $emailerr;
        }

        if(isset($telefoonerr) && !empty($telefoonerr)){
            $errormelding .=  $telefoonerr;
        }
        
        $errormelding .= '</ul>';
    }
}


?>
 
PHP hulp

PHP hulp

14/05/2025 04:08:54
 
Rob Doemaarwat

Rob Doemaarwat

22/09/2017 07:12:55
Quote Anchor link
De $connection is een instance van jouw class 'database', en dat is geen extension van mysqli. In je class maak je wel een $db_connection aan. Kort door de bocht kun je dit probleem dus oplossen door mysqli_query($connection->db_connection, ...) te schrijven.

Wat je normaal echter met zo'n 'wrapper' class probeert te doen is zoveel mogelijk recht-toe-recht-aan ellende uit je code te krijgen. Je zou dus een functie $connection->query() kunnen maken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
public function query($sql){
  return mysqli_query($this->db_connection,$sql);
}

scheelt je steeds wat typewerk.

Of bijvoorbeeld nog abstracter: $connection->insert('tabel',['veld1' => 'waarde1', ...]);

O: 'var' is niet meer van deze tijd. Gebruik public of private of protected.
O2: zoek eens op SQL-injectie, of vul anders een keer 's Hertogenbosch als plaatsnaam in.
O3: als je deze class vaker wilt gaan gebruiken moet je de connection details (user, pass, enz) niet in de class zelf opslaan maar juist als params meegeven in de __construct. Kun je elke keer wat anders meegeven.

Toevoeging op 22/09/2017 07:22:26:

O4: je 'else error' constructie staan in omgekeerde volgorde van de aanroep. Op regel 132 moet je dus de foutmelding geven van $sql3, enz. Nu gaat het meteen al fout op regel 119 met $sql1, en dan kom je dus in de error melding op regel 138 uit. Daar tover je dan ineens $sql3 uit de hoge hoed. Die had je nog niet aangemaakt (want zover kwam je code niet), en dus krijg je een PHP foutmelding.
 
Dennis Achternaam

Dennis Achternaam

22/09/2017 14:50:09
Quote Anchor link
Rob Doemaarwat op 22/09/2017 07:12:55:
Wat je normaal echter met zo'n 'wrapper' class probeert te doen is zoveel mogelijk recht-toe-recht-aan ellende uit je code te krijgen. Je zou dus een functie $connection->query() kunnen maken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
public function query($sql){
  return mysqli_query($this->db_connection,$sql);
}


Ben hiermee aan de slag geweest. Wat ik nog niet snap is het verplaatsen van mijn querycode naar een nieuwe class. ik ben begonnen met een class voor mijn eerste tabel: persoonsgegevens. Deze had ik alsvolgt uitgedacht:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
class persoonsgegevens extends database {
public $sql = "INSERT INTO persoonsgegevens(voornaam,achternaam) VALUES('$voornaam','$achternaam')";
public $firstName = ($_POST["Voornaam"]);
public $lastName = ($_POST["Achternaam"]);
public $userID = mysqli_insert_id($connection->db_connection);

    function
query($sql){
        return mysqli_query ($this->db_connection,$sql);
}

?>


De bedoeling is dat de input van de gebruiker via de class bij de juiste kolommen en tabellen uitkomt, beginnend dus met de tabel persoonsgegevens. en dan moet dit uiteindelijk voor zowel een INSERT, UPDATE, SELECT als DELETE..
Gewijzigd op 22/09/2017 14:51:18 door Dennis Achternaam
 
- Ariën  -
Beheerder

- Ariën -

22/09/2017 15:06:48
Quote Anchor link
Het klinkt een beetje vreemd dat je persoonsgegevens extend van de database-klasse.
Persoonsgegevens zijn immers geen database.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

22/09/2017 15:15:38
Quote Anchor link
Je bent al gewend aan mysqli. Mysqli wordt standaard al als een class aangeleverd door PHP.
Mijn advies zou zijn deze class uit te breiden. Je kunt dan direct je vertrouwde mysqli methods gebruiken maar je kunt de class uitbreiden met custom methods mocht je daar ineens behoefte aan hebben. Leer je zelf overigens aan om classnames te beginnen met een hoofdletter.

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
<?php

class Database extends mysqli // <== You see?
{
    public function __construct($host, $username, $passwd, $dbname) {
        parent::__construct($host, $username, $passwd, $dbname);
    }


    /*
     * custom methods
     */

}

$db = new Database('localhost', 'user', 'pass', 'database');
$result = $db->query('SELECT * FROM table');
// etc
?>


Daarnaast kun je de database class ook in andere classes gebruiken

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
<?php
class UserMapper
{
    private $db;

    public function __construct(Database $db) {
        $this->db = $db;
    }


    public function getAllUsers() {
        $result = $this->db->query("SELECT * FROM users");

        if(!$result)
            return NULL;

        return $result->fetch_all(MYSQLI_ASSOC);
    }
}


$db = new Database('localhost', 'user', 'pass', 'database');
$userMapper = new UserMapper($db);

$users = $userMapper->getAllUsers();

if($users) {
    foreach($users as $user) {
        // ...
    }
}


?>
Gewijzigd op 22/09/2017 15:31:17 door Frank Nietbelangrijk
 
Ward van der Put
Moderator

Ward van der Put

22/09/2017 15:20:21
Quote Anchor link
Wat mij aanvankelijk goed geholpen heeft, is het strikt scheiden van dingen de iets doen en dingen die iets zijn. Die scheiding ontbreekt in jouw klasse Persoonsgegevens, want die is iets én die doet iets. Zoals Ariën al aankaart, kun je het sleutelwoord "extends" vrij letterlijk lezen als "is een": "persoonsgegevens is een database" klopt niet, daar ontbreekt nog wat.

Wat je eigenlijk nodig hebt, is een klasse met persoonsgegevens (of een persoon) enerzijds en een tweede klasse die de persoonsgegevens opslaat. Ik gebruik daarvoor meestal een data mapper of een data access object.
 



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.