Classes intro

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior PHP Developer

Bij Getnoticed doen wij wat we leuk vinden, websites bouwen en online marketing. Voor veel van onze klanten doen we dan ook allebei. Wel zo fijn om campagnes te draaien voor conversiegerichte website die in eigen beheer zijn. In onze vestiging in Nederweert zitten onze development afdelingen en worden de websites gebouwd. Op dit moment zijn we op zoek naar jou: dé PHP/Back-end developer die net als wij, het hoofd boven het maaiveld durft uit te steken! In het kort Even een paar punten die omschrijven wat deze toffe baan inhoudt: Het bedenken van nieuwe functionaliteiten Het verbeteren van het

Bekijk vacature »

In-house .NET software developer

Functie omschrijving Ben jij op zoek naar een uitdagende in-house development functie? Maak jij graag hét verschil m.b.t. interne automatisering? Haal jij energie uit het automatiseren van processen voor je eigen collega's? Dan hebben wij de perfecte vacature voor je! Voor een gezellig Brabants familiebedrijf, zijn wij op zoek naar een .NET software developer. Je gaat in deze zelfstandige functie werken aan de ontwikkeling van eigen applicaties & en het koppelen van deze applicaties aan de ingekocht software. Jouw werkzaamheden zien er als volgt uit: Het management team signaleert behoeftes vanuit de business. Vervolgens worden deze behoeftes uitgewerkt en geprioriteerd.

Bekijk vacature »

SAP Integratie Ontwikkelaar

Ben jij ambitieus in de verdere ontwikkeling van SAP binnen HANOS, en heb je kennis van SAP PI, CPI (SAP integration suite) en of andere middleware tooling? Dan ben jij mogelijk onze nieuwe SAP Integratie (middleware) Ontwikkelaar! Lees snel verder en solliciteer! Wat ga je doen? Als SAP Financieel Consultant ben je, als deel van een gedreven team van interne SAP consultants, de schakel tussen de gebruikersorganisatie en ICT. Je draagt proactief bij aan een optimale aansluiting van de SAP-functionaliteit (een applicatielandschap met o.a. Suite on HANA, Fiori, Hybris, C4C en BO), op de bedrijfsprocessen. Verder ondersteun je de HANOS

Bekijk vacature »

.Net Front-end Ontwikkelaar

Wij zoeken een .Net Front-end Ontwikkelaar! Omschrijving Kun jij snel schakelen en ben je stressbestendig? Dan zoeken wij jou! Als .Net Front-end Ontwikkelaar help je mee aan de webapplicatie die over de hele wereld door allerlei bedrijven wordt gebruikt. Je werkt daarnaast mee aan nieuwe en verbeterde functionaliteiten en helpt met het oplossen van bugs. Over de opdrachtgever Je komt te werken in een ambitieus team dat zich blijft ontwikkelen. Dit is alle informatie die we nu kunnen delen over de werkplek. Als jij de .Net Front-end Ontwikkelaar bent voor deze job, vertellen we je snel nóg meer. Eisen Heb

Bekijk vacature »

SQL Developer

Functie omschrijving We are looking for a dutch native speaker Jij gaat in deze functie aan de slag met uitdagende projecten en het creëren van maatwerk software, vooral middels SQL. Iedere klant/project is weer anders, maar dat maakt dit bedrijf en de functie erg uniek & uitdagend. Verder heb je de volgende taken: Ontwikkelen en ontwerpen van SQL databases. T-SQL wordt hierbij gebruikt als programmeer laag; Optimalisatie van query's, voor een verbeterde efficiency; Begeleiden van junior developers, mits je dit leuk vindt; Heb je meer interesse in een rol als consultant, dan is dit ook mogelijk. Je heb hier meer

Bekijk vacature »

Medior Java developer

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 »

Fullstack Software Developer

Functieomschrijving Voor een ambitieuze werkgever in regio Roosendaal zijn wij op zoek naar een Full Stack C#.NET Developer. Als software programmeur ben je verantwoordelijk voor het bouwen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere developers en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Verder ontwikkelen en onderhouden van webapplicaties, dashboards en apps voor de eigen IOT-oplossingen; Testen en goedkeuren van de software; Je gaat aan de slag met de volgende technologieën en frameworks: C#, JS frameworks,

Bekijk vacature »

Delphi Programmeur

Functie omschrijving Onze opdrachtgever is gespecialiseerd in kantoor-bedrijfssoftware en zit gevestigd in omgeving Numansdorp. Als programmeur ben jij bij dit bedrijf met het volgende bezig; Je vertaalt technische en functionele ontwerpen naar kwalitatieve software. Je ontwikkelt, ontwerpt en test software. Je maakt daarbij veel gebruik met de volgende tools & technologieën: Delphi 10.3 (Rio), QuickReport 6. Je krijgt in deze rol veel vrijheid en verantwoordelijkheid. Je levert projecten van A - Z op, en werkt daarbij projectmatig en gestructureerd. Bedrijfsprofiel Dit bedrijf richt zich op maatwerk software oplossingen. Deze software oplossingen worden ingezet in de financiële branche. Het betreft een

Bekijk vacature »

.NET developer

Functie Als senior .NET ontwikkelaar en aankomend lead developer ben jij in één van de drie development teams verantwoordelijk voor het volgende: • Jij hebt een oogpunt op modernisering en bent verantwoordelijk voor de technische staat en architectuur van de applicatie; • Jij bent verantwoordelijk voor het reviewen van de technische haalbaarheid van verschillende onderwerpen; • Jij bent verantwoordelijk voor een goede aansluiting binnen het multidisciplinaire team en de bijbehorende taken; • Jij bent verantwoordelijk voor het aandragen van verbetervoorstellen en ontwikkelstandaarden in zowel de techniek als architectuur; • Jij bent meewerkend voorman en ondersteunt en coacht jouw team op

Bekijk vacature »

Low-code developer

Functie omschrijving Heb jij altijd al een training willen volgen in het buitenland? Voor een leuke opdrachtgever in omgeving Alphen ad Rijn zijn wij op zoek naar kandidaten die aan de slag willen als Low Code Developer! Beschik jij over HBO/WO nivo, bij voorkeur Informatica, maar een ander technische opleiding zoals bijv. wiskunde, natuurkunde is ook goed. Heb jij aantoonbare affiniteit met IT en ben jij gedreven, enthousiast, communicatief vaardig en klantgericht? Lees dan snel verder! Je wordt getraind tot een volwaardig Low Code Developer, het traject ziet er als volgt uit: Start 1e week januari, opleiding van 3 weken

Bekijk vacature »

Lead React Developer

Dit ga je doen Als Lead React Developer zul jij je voornamelijk gaan bezighouden met: Het werken aan tal van uiteenlopende projecten waar gloednieuwe (web)applicaties van scratch af aan ontwikkeld worden met o.a. React (Native) en Drupal; Het aansturen van een team bestaande uit 5-6 talentvolle en gedreven ontwikkelaars; Het adviseren en meedenken over nieuwe (technische) oplossingen en te gebruiken tools/frameworks; Het meedenken over de architectuur en de juiste implementatiebeslissingen maken; De doorontwikkeling van huidige applicaties. Hier ga je werken Als je inderdaad een ervaren Lead React Developer bent die zichzelf graag nog verder wil ontwikkelen dan is het goed

Bekijk vacature »

.NET Developer C#

Dit ga je doen Als developer nieuwe gave features implementeren; Werken met technieken als C# .NET en (REST) API's webservices; Ontwikkelen van koppelingen middels API's; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken Als C# .NET Developer wordt je verantwoordelijk voor het ontwikkelen van applicaties voor belangrijkste product van deze organisatie. Dit product is een applicatie voor alles omtrent hypotheken. De programmeertaal die je hierbij beheerst is C#. Er

Bekijk vacature »

SQL Database developer

Functie omschrijving Wil jij meewerken aan het creëren van slimme software om magazijnen als een geoliede machine te laten lopen? Wij zoeken een zorgvuldig persoon, iemand die niet snel de hand omdraait voor complexe algoritmes. Denk jij dat jij de SQL ontwikkelaar bent die wij zoeken? Lees snel verder en wie weet zitten we binnenkort samen aan tafel! Jouw werkzaamheden zullen er als volgt uitzien: Je houdt je bezig met het ontwerpen en ontwikkelen van MS SQL server databases, dit doe je met T-SQL als programmeer laag. Je gaat aan high-end software oplossingen werken, dit doe je voor de optimalisatie

Bekijk vacature »

C# .NET Developer

Dit ga je doen Als developer nieuwe gave features implementeren; Werken met technieken als C# .NET en (REST) API's webservices; Ontwikkelen van koppelingen middels API's; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken In een klein team van professionals ben je als C# .NET Developer verantwoordelijk voor het ontwikkelen van één van de applicaties voor het grootste inhouse product: een applicatie voor alles omtrent hypotheken. De programmeertaal die je

Bekijk vacature »

Database Developer

Functieomschrijving Heb jij ongeveer 3 jaar ervaring als Database Developer met MS SQL of een vergelijkbare database? Wil jij werken voor een ambitieuze werkgever in regio Tilburg waar jij volledig de mogelijkheid krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je gaat projecten gedurende het hele proces begeleiden. Je sluit aan bij afspraken met klanten om hun processen helder te krijgen. Vervolgens voer jij het project uit en zorgt dat dit zo goed mogelijk verloopt; Je werkt aan nieuwe softwareoplossingen die de logistieke processen verbeteren of vernieuwen; Je houdt je bezig met het ontwikkelen van

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

16/02/2025 13:29:15
 
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.