Classes intro

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

Bekijk vacature »

.NET Developer

Functie omschrijving Ervaren .NET Developer gezocht! Wij zoeken een ervaren .NET developer die aan de slag gaat voor een softwarebedrijf in de regio Rhenen. In deze rol ben jij zowel zelfstandig als in teamverband verantwoordelijk voor het ontwikkelen en verbeteren van bestaande producten. Daarnaast houdt jij je bezig met de nieuwbouw van websites, webapplicaties en mobiele applicaties die zowel intern als extern gebruikt worden. Je werkt hierbij nauw samen met andere developer, productmanagers en product specialisten om mooie producten te creëren. Bedrijfsprofiel Waar kom je te werken? Je komt te werken voor snelgroeiende softwareleverancier en allround dienstverlener. Klanten van deze

Bekijk vacature »

Als Front-end developer werken aan apps voor het o

Functie Als Front-end developer werk je intensief samen met 1 van de UX-designers en denk je mee over de gebruiksvriendelijkheid en design van onze web- en mobile apps. Je bent betrokken bij sessies met gebruikers om designs te valideren en usability van de app-in-wording te testen. Vervolgens gebruik je dit om samen met je team waarin ook back-end (.NET) developers zitten, te zorgen voor de realisatie van de best mogelijke apps voor studenten en docenten. Eisen • Je hebt een hands-on development en coding mind-set en werkt graag aan een high quality code base welke je consequent onderhouden kan worden

Bekijk vacature »

Front end developer React Sportgames

Functie Als Front end developer ga jij aan de slag bij een gave en bekende organisatie op het gebied van sportgames. Jij gaat aan de slag in een scrumteam met 6 developers die gepassioneerd en actief bezig zijn om spelers kwalitatieve en mooie spelervaringen aan te bieden. Als scrumteam werken ze in drie wekelijkse sprints en begin je iedere ochtend met een stand-up. Als Front end developer werk jij bij deze organisatie voornamelijk met Javascript, html, css en React. Er wordt veel gebruikt gemaakt ook van C#, Docker en Kubernetes. Het team hecht veel waarde aan het leveren van hoogwaardige

Bekijk vacature »

Java/Kotlin Developer

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

Lead developer (PHP, Symfony, DDD)

Functie Als Lead developer zorg je ervoor dat het team (bestaande uit zowel junior als ervaren developers) in staat is om de kwaliteit van de software (en code) verder te verhogen. In samenwerking met het team, de product owner en de andere lead developers zet je technische lijnen uit en bepaal je de prioriteiten per sprint. Lijkt het jou interessant om complexe problemen op te lossen en bijvoorbeeld een nieuwe applicatiestructuur in Symfony op te zetten? Dan komen wij graag met je in contact. Eisen • HBO werk- en denkniveau (ze kijken niet naar papieren, maar naar denkniveau, motivatie en

Bekijk vacature »

Fullstack JavaScript developer (ReactJS, NodeJS, T

Functie Het team bestaat momenteel uit ruim 15 collega’s, waarvan ruim de helft in het ontwikkelteam werkzaam is. Er zijn gave plannen om het platform ook te gaan toepassen op bijv. vliegvelden, maar ook internationale groei zit in het verschiet en daarom zijn ze op zoek naar versterking. Als Fullstack JavaScript developer werk je nauw samen met 9 fullstack (Python en .NET) developers. Binnen het team ga jij je toespitsen op het creeren van de optimale toegankelijkheid en user experience. Om dit voor elkaar te krijgen zul je ontwerpen, programmeren, testen en implementeren. Het hele proces dus! Maar ook bijvoorbeeld

Bekijk vacature »

Software Developer C++ en Perl

Ben je een slimme en enthousiaste universitair opgeleide bèta die graag bij een relatief klein softwarebedrijf wil werken waar de sfeer goed is en eigen inbreng gewaardeerd wordt? Wij, IntelliMagic in Leiden, ontwikkelen technisch hoogwaardige software op het gebied van IT infrastructuur performance analytics. Het type software zorgt voor intellectueel interessante uitdagingen. We ontwerpen de producten zelf en verkopen deze als off-the-shelf software aan grote bedrijven in Europa en de VS. Wij zoeken een ervaren C++ software engineer met kennis van Perl voor een van onze ontwikkelteams. Werkzaamheden Samen met de andere ontwikkelaars specificeren, ontwerpen en implementeren van nieuwe functionaliteit

Bekijk vacature »

Low Code Developer

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en ben jij HBO afgestudeerd in de richting van IT? Heb jij verstand van datamodellering, NO CODE Platformen en kun jij het aan om projecten te leiden? Voor een leuke opdrachtgever in omgeving Rotterdam zijn wij op zoek naar een No Code developer die zich bezig gaat houden met het optimaliseren van bedrijfsprocessen bij klanten in heel het land! Wat ga je hier zoal doen? Je gaat geen code kloppen maar bedenken hoe applicaties eruit moet komen te zien. Je gaat werken met een non code platform, je kunt denken aan

Bekijk vacature »

Lead developer

Functie Als lead developer wordt jij verantwoordelijk voor een van onze development teams. Samen met de Software Architect bewaak jij de kwaliteit en uitvoering van onze complexe vraagstukken. Daarnaast ben jij verantwoordelijk voor het inschatten, designen en ontwikkelen van middelgrote tot grote veranderingen in de software. Ook coördineer jij het proces rondom complexe technische vraagstukken. Verder bestaat jouw takenpakket uit het volgende: – Het aansturen van jouw development team; – Het begeleiden van Junior Software Engineers; – Het maken van technische analyses m.b.t. nieuwe aanvragen en het tijdsbestek inschatten voor de uitvoering hiervan; – Het uitvoeren van de ontwikkeling van

Bekijk vacature »

Front-end developer (React)

Functie Het frontend team bestaat momenteel uit 4 dedicated front-enders en is hard aan het groeien! Ook werken er diverse designers waar je veel mee schakelt. Samen leveren jullie een essentiële bijdrage aan de applicaties die ze voor hun klanten realiseren, jij bent hierin de schakel tussen de eindgebruiker en de slimme backend. Je werkt in het frontend team samen met de backend teams en product owners om te zorgen dat onze applicaties een fijne gebruikerservaring opleveren. Ze werken o.a. met: React, Atomic design, Styled components, JavaScript / TypeScript, NPM, Webpack Blade templates, HTML, SCSS, Git flow. Eisen • HBO

Bekijk vacature »

Als PHP developer (Symfony) bijdragen aan betere z

Functie Als Medior/Senior PHP developer wordt er een mate van zelfstandigheid verwacht, maar ook dat je goed in een team kunt opereren waar kennis wordt gedeeld en er bijvoorbeeld codereviews plaatsvinden. Kwaliteit staat voorop, mede hierom werken ze bijvoorbeeld zonder echte deadlines in hun sprints. De SaaS-applicatie wordt volledig ontwikkeld in PHP en Symfony. De module bestaat uit een stuk informatie verrijking en intelligentie wat resulteert in een medische check. De logica wordt daarom in de code geïntrigeerd. Je bent onder andere bezig met complexe databases waar meer dan 80.000 medicijnen op verschillende niveaus in staan, die maandelijks worden geactualiseerd.

Bekijk vacature »

Mendix Ontwikkelaar - Vernieuwen van het applicati

Bedrijfsomschrijving De ontwikkelingen in de transportsector gaan razendsnel. Bij ons kun je een belangrijke rol spelen in deze sector. We streven ernaar om onze klanten te ontzorgen op het gebied van continuïteit en veiligheid met innovatieve producten en diensten. We willen dat onze klanten de veiligste vervoerders van Europa worden. Ons team werkt hard om deze ambitieuze doelstellingen te bereiken en we bieden een motiverende werkomgeving aan. We zijn op zoek naar zelfstarters met een focus op resultaat en beslissingsbevoegdheid. Functieomschrijving Als Mendix ontwikkelaar bij deze organisatie heb je een gevarieerde baan. Het applicatielandschap wordt vernieuwd en de “schade en

Bekijk vacature »

Digitale Tovenaar Gezocht: Junior Low-code/No-code

Bedrijfsomschrijving Duik mee in een wereld vol innovatieve avonturen waar gegevens en technologie een magische symbiose aangaan! Al meer dan twee decennia lang zijn we de tovenaars achter de schermen die oplossingen creëren voor de meest complexe klantcontactvraagstukken en datagedreven software-uitdagingen. Bij ons draait het om de kracht van samenwerking en groei. We zijn een hechte vriendengroep die samen bergen verzet om elkaar én onze klanten te laten schitteren. Jouw succes is ons succes en we streven ernaar om elkaar naar nieuwe hoogten te tillen, niet voor even, maar voor altijd. We willen dat jij je helemaal thuis voelt in

Bekijk vacature »

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 »
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

09/12/2024 01:50:39
 
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.