[OOP] Telefoonboek V2

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.NET developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Front end developer binnen de consultancy

Functie Je komt in een team met ambitieuze developers die de passie voor Front-End met jou delen. Samen ga je aan de slag met leuke en leerzame opdrachten. Het team heeft een eigen budget en financiën en zij bepalen zelf hoe dat besteed en investeert wordt. Je gebruikt tools als JavaScript, Node.js, React, Angular, Typescript en Vue.js wanneer je werkt aan de opdrachten. Daarnaast zul je veel leren van je collega’s en gezamenlijk een leuke tijd doorbrengen tijdens activiteiten zoals wintersport, hackatons en conferentiebezoeken. Je krijgt niet alleen de mogelijkheid Front-End te ontwikkelen, maar ook vooral jezelf. Dit kan behaald

Bekijk vacature »

Junior Software Developer

Functie omschrijving Wij zijn op zoek naar een Junior Software Developer!? Sta jij aan het begin van jouw loopbaan of heb jij misschien al enige ervaring? Vind jij het daarnaast belangrijk om jezelf constant te kunnen ontwikkelen en uitdagen? Lees dan snel verder! Voor een vooraanstaand softwarehuis in Nieuwegein ben ik op zoek naar een Junior Software Developer. De eigenaar van het bedrijf is ervan bewust dat je als junior nog een hoop kan leren, waardoor je de eerste maanden veel begeleiding en diverse trainingen krijgt. Daarna ga je samen met je collega's aan zowel kleine als grote projecten werken.

Bekijk vacature »

Front end developer

Functie Qua type opdrachten is er echt een verscheidenheid aan afnemers, zo werken ze met grote multinationals, maar ook met startups. Zo kom je te werken in een gevarieerde omgeving en kan je ook schakelen tussen verschillende culturen. De projecten variëren van greenfield projecten tot langdurige ontwikkeltrajecten. Hier wordt alleen maar gewerkt met aan front end projecten. Daarom maakt het onze partner niet uit waar jij kennis van hebt, als je maar gedegen kennis hebt van Javascript frameworks, Unit testing en ook bekend bent met de scrum methodiek. Eisen Minimaal 4 jaar relevante werkervaring Kennen en ervaring van Javascript frameworks

Bekijk vacature »

Full Stack Developer/ Applicatie Ontwikkelaar

Wat jij doet Als Applicatie Ontwikkelaar ben je onderdeel van het team die de Rimote omgeving ontwikkeld en onderhoud. Hierbij kan je denk aan de cloud, on premise en webapplicaties welke worden gebruikt in bijvoorbeeld industriële bakkerijen, biogasinstallaties en kwekerijen. Deze applicaties verzorgen (remote) de aansturing en monitoring van processen, machines en robots. Van a tot z ben je betrokken bij projecten. Dit betekent vanaf ontwerp tot oplevering. Je moet samen met jouw team een goed product neer zetten. Dit begint met het opzetten van het ontwerp. De basis van de software moet staan als een huis. Daarvoor moet jij

Bekijk vacature »

Front End Developer React Vue

Dit ga je doen Meewerken aan de implementaties en ontwikkeling van nieuwe functionaliteiten van de webapplicaties; Ontwikkelen met o.a. React en Vue en HTML/CSS, ook krijg je in verband met de samenwerking ook affiniteit met de backend Ruby on Rails; Ontwikkeling aan de front end voor de koppelingen tussen de diverse systemen; Ontwerpen van interfaces en een bijdrage leveren aan de gebruikerservaring; Zorgdragen voor hoge kwaliteit van code en jezelf (en anderen) blijven verbeteren; Als Senior Front End Developer begeleid je zelf ook FE-development projecten, hierin leid je de projecten en pak jij het initiatief op (bv integratieprojecten). Hier ga

Bekijk vacature »

Software ontwikkelaar

Ben jij graag bezig met verschillende projecten? Vind jij beleving van klanten én medewerkers ook belangrijk? Wij zijn vanwege de doorontwikkeling van het applicatielandschap van onze opdrachtgever op zoek naar een fulltime software ontwikkelaar. Omschrijving Jij en jouw collega’s zijn verantwoordelijk voor de continuïteit en waarborging van het applicatielandschap. Om de processen vloeiend te laten verlopen is software ontwikkeling daarom van essentieel belang. Onze opdrachtgever doet dit voornamelijk zelf, met door hun eigen ontwikkelde applicaties. Dit betekent dat jij: functionele eisen vertaalt naar gebruiksvriendelijke software; tijdens SCRUM sessies advies geeft over het te bouwen ontwerp; nieuwe software ontwikkelt en het

Bekijk vacature »

PHP Developer gezocht!

Functie omschrijving Wij zijn op zoek naar een PHP Developer! Ben jij op zoek naar een nieuwe uitdaging? Lees dan snel verder! Voor een organisatie in de regio Utrecht die zich bezighoud met het verbeteren van de medicatieveiligheid zoeken wij een Software Developer. In deze functie zijn wij op zoek naar een slimme en enthousiaste Developer die interesse heeft in farmacie, logistiek en ICT. Daarnaast beschik je over een goed analytisch vermogen en ben je van nature gestructureerd en resultaatgericht. Je moet in deze functie daadkrachtig, flexibel en communicatief goed zijn. Je verantwoordelijkheden bestaan uit: Object georiënteerd programmeren; Werken in

Bekijk vacature »

Node.js developer

Functie Onder begeleiding van 3 accountmanagers waarvan er 1 binnen jouw expertise je aanspreekpunt zal zijn ga je aan de slag bij diverse opdrachtgevers. Hij of zij helpt je bij het vinden van een passende en uitdagende opdracht. Hierin houden ze uiteraard rekening met jouw situatie, ervaring en (technische) ambities. De opdrachten duren gemiddeld één tot 2 jaar. Hierdoor kun je je ook echt vastbijten in een project en als consultant impact maken. Naast de opdracht ben je regelmatig met je collega’s van de IT-afdeling om bijvoorbeeld onderlinge kennis te delen, of nieuwe trends te bespreken. Ook worden er regelmatig

Bekijk vacature »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

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 »

PHP Software Developer

Functie omschrijving PHP Software Developer gezocht! Voor een organisatie in de regio Zeist die zich bezighoud met het verbeteren van de medicatieveiligheid zoeken wij een Software Developer. In deze functie zijn wij op zoek naar een slimme en enthousiaste Developer die interesse heeft in farmacie, logistiek en ICT. Daarnaast beschik je over een goed analytisch vermogen en ben je van nature gestructureerd en resultaatgericht. Je moet in deze functie daadkrachtig, flexibel en communicatief goed zijn. Je verantwoordelijkheden bestaan uit: Object georiënteerd programmeren; Werken in een scrumteam aan de ontwikkeling van een medicatiebewakingssysteem; Meedenken over de mogelijkheden en onmogelijkheden van projecten;

Bekijk vacature »

Medior/senior Front-end developer

Functie Je maakt deel uit van een DevOps Scrum team en werkt samen met back-end developers, test-engineers, interaction designers en een projectmanager. Er zijn verschillende groepen Scrum teams. Een roadmap team is jouw ‘’thuisbasis’’, daar wordt gewerkt aan doorontwikkeling van bestaande omgevingen voor een aantal klanten. Hiernaast zijn er projectteams waar nieuwe omgevingen worden gebouwd, of grote complexe wijzigingen worden doorgevoerd op bestaande omgevingen. Je kunt (afhankelijk van jouw wensen en doelen) dus afwisselend werken in beide teams. Hiernaast participeer je in het Chapter Front-end development waar gezamenlijk kennis en ervaring wordt gedeeld. Als Front-end developer is het jouw doel

Bekijk vacature »

Front-end Developer - Juniorfunctie

Functie omschrijving Ben jij op zoek naar een uitdagende baan als front-end developer, in een informele werksfeer, waar jij echt het verschil kan maken? Wil jij graag werken voor een bedrijf dat sportiviteit en een open communicatie, hoog in het vaandel heeft staan? Dan hebben wij de perfecte vacature voor je! Voor een klein bedrijf in Rijen dat gespecialiseerd is in het omzetten van digitale woningtekeningen naar managementinformatie, zijn wij per direct op zoek naar een allround front-end developer. Jouw werkzaamheden zien er als volgt uit: Ja gaat nauw samenwerken met de back-end developer. De database structuur is volledig gebouwd

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

Tim

05/02/2009 21:32:00
Quote Anchor link
Heey allemaal,


Een geupdate versie van mijn uitprobeerseltje. Zoals de naam al doet vermoeden moet het een simpel telefoonboek voorstellen (enkel weergeven en toevoegen). Heb ik op deze manier het OOP-principe goed gebruikt? Commentaar en (opbouwende) kritiek zijn van harte welkom!

Naar aanleiding van de post hieronder heb ik het script aangepast:

index.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
<?php
require('class_Database.php');
require('class_Telefoonboek.php');
require('class_TelefoonboekRecord.php');
require('class_Validator.php');

$validator = new Validator;
$database = new Database('localhost', 'telefoonboek', 'root', 'usbw');
$telefoonboek = new Telefoonboek($database);
?>


<HTML>

<HEAD>

<TITLE>Telefoonboek</TITLE>

</HEAD>

<BODY>

<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
    $validator->checkMix($_POST['name'], 'Uw naam moet uit enkel letters en cijfers bestaan.<br>');
    $validator->checkMinLength($_POST['name'], 'Uw naam moet uit minmaal 3 tekens bestaan.<br>', 3);
    $validator->checkMaxLength($_POST['name'], 'Uw naam mag uit maximaal 100 tekens bestaan.<br>', 100);
    $validator->checkNumber($_POST['number'], 'Uw telefoonboek moet uit enkel cijfers bestaan.<br>');
    $validator->checkMinLength($_POST['number'], 'Uw telefoonnummer moet uit minmaal 3 tekens bestaan.<br>', 3);
    $validator->checkMaxLength($_POST['number'], 'Uw telefoonnummer mag uit maximaal 100 tekens bestaan.<br>', 25);
    
    $error = $validator->getErrorMessage();
    
    if(empty($error)){
        $record = new TelefoonboekRecord;
        $record->setName($_POST['name']);
        $record->setNumber($_POST['number']);
        
        try {
            $telefoonboek->addRecord($record);
        }
catch(Exception $e) {
            echo 'Het nieuwe nummer kon niet worden toegevoegd.';
        }

        
        unset($_POST['name']);
        unset($_POST['number']);
    }
else{
        echo $error . '<br><br><br>';
    }
}


$records = $telefoonboek->getAllRecords();

if(!$records){
    echo 'Er zijn geen nummers gevonden.';
}
else{
    ?>

    
    <TABLE>
     <TR>
      <TD STYLE='width: 200px; font-weight: bold;'>Name</TD>
      <TD STYLE='width: 200px; font-weight: bold;'>Number</TD>
     </TR>
    
     <?php
    
     for($i = 0; $i < count($records); $i++){
         echo '<TR>';
          echo '<TD>' . $records[$i]->getName() . '</TD>';
          echo '<TD>' . $records[$i]->getNumber() . '</TD>';
         echo '</TR>';
     }

    
     ?>

    
    </TABLE>
    
    <?php
}
?>


<br><br><br><br>

<FORM ACTION='' METHOD='POST'>
 <TABLE>
  <TR>
   <TD>Naam:</TD>
   <TD>
    
    <?php
    echo '<INPUT TYPE="text" NAME="name" VALUE="' . (isset($_POST['name']) ? $_POST['name'] : '') . '"></TD>';
    ?>

    
   </TD>
  </TR>
  <TR>
   <TD>Telefoonnummer:</TD>
   <TD>
    
    <?php
    echo '<INPUT TYPE="text" NAME="number" VALUE="' . (isset($_POST['number']) ? $_POST['number'] : '') . '"></TD>';
    ?>

    
  </TR>
  <TR>
   <TD COLSPAN='2'><br><INPUT TYPE='submit' NAME='submit' VALUE='Voeg Toe'></TD>
  </TR>
 </TABLE>
</FORM>

</BODY>

</HTML>


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

class Validator {
    protected $errorMessage;
    
    public function __construct() {
        $this->errorMessage = '';
    }

    
    public function checkAlpha($input, $error) {
        if(!preg_match( '/^[a-zA-Z]+$/', $input)){
            $this->errorMessage .= $error;
        }
    }

    
    public function checkMix($input, $error) {
        if(!preg_match( '/^[a-zA-Z0-9]+$/', $input)){
            $this->errorMessage .= $error;
        }
    }

    
    public function checkNumber($input, $error) {
        if(!is_numeric($input)){
            $this->errorMessage .= $error;
        }
    }

    
    public function checkMinLength($input, $error, $min) {
        if(strlen($input) < $min){
            $this->errorMessage .= $error;
        }
    }

    
    public function checkMaxLength($input, $error, $max) {
        if(strlen($input) > $max){
            $this->errorMessage .= $error;
        }
    }

    
    public function getErrorMessage() {
        $error = $this->errorMessage;
        
        $this->errorMessage = '';
        
        return $error;
    }
}


?>


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

class Telefoonboek {
    protected $database;
    
    public function __construct($database) {
        $this->database = $database;
    }

    
    public function addRecord($record) {
        $sql = 'INSERT INTO telefoonboek SET name="' . mysql_real_escape_string($record->getName()) . '",
            number="'
. mysql_real_escape_string($record->getNumber()) . '"';
        $result = $this->database->makeRow($sql);
        
        if(!$result){
            throw new Exception('');
        }

        
        return true;
    }

    
    public function getAllRecords() {
        $sql = 'SELECT * FROM telefoonboek';
        $count = $this->database->countRows($sql);
        
        if($count > 0){
            $rows = $this->database->getRows($sql);
            
            for($i = 0; $i < count($rows); $i++){
                $record = new TelefoonboekRecord;
                $record->setId($rows[$i]['id']);
                $record->setName($rows[$i]['name']);
                $record->setNumber($rows[$i]['number']);
                
                $records[] = $record;
            }

            
            return $records;
        }
else{
            return false;
        }
    }

    
    public function getRecord($id) {
        $sql = 'SELECT * FROM telefoonboek WHERE id="' . mysql_real_escape_string($id) . '"';
        $count = $this->database->countRows($sql);
        
        if($count == 1){
            $row = $this->database->getRow($sql);
            
            $record = new TelefoonboekRecord;
            $record->setId($row['id']);
            $record->setName($row['name']);
            $record->setNumber($row['number']);
            
            return $record;
        }
else{
            throw new Exception('');
        }
    }
}


?>


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

class TelefoonboekRecord {
    protected $id, $name, $number;
    
    function
__contruct() {
        $this->id = 0;
        $this->name = '';
        $this->number = '';
    }

    
    public function setId($id) {
        $this->id = $id;
    }

    
    public function getId() {
        return $this->id;
    }

    
    public function setName($name) {
        $this->name = $name;
    }

    
    public function getName() {
        return $this->name;
    }

    
    public function setNumber($number) {
        $this->number = $number;
    }

    
    public function getNumber() {
        return $this->number;
    }
}


?>


Groetjes!
Gewijzigd op 01/01/1970 01:00:00 door Tim
 
PHP hulp

PHP hulp

22/12/2024 10:36:56
 
Citroen Anoniem Graag

Citroen Anoniem Graag

05/02/2009 22:16:00
Quote Anchor link
Al een stuk beter, ik zou echter de Validator static maken (vooral zn functies bedoel ik). Want een instantie lijkt niet nodig, return gewoon true/false.

Ik zou de telefoonboekclasse een instantie van db meegeven (via constructor) en niet in de constructor aanmaken. (ondehoud technisch gezien).

Ik zou bij addRecord een object van TelefoonboekRecord meegeven in plaats van de losse waarde.

if(!$result){
return false;
}

uit de addRecord functie.
Daar zou ik gewoon een exception gooien, het is tenslotte overwacht gedrag, en niet een verwachte boolean.

Verder is de opzet al een stuk beter, maar in mijn ogne nog niet perfect.
Gewijzigd op 01/01/1970 01:00:00 door Citroen Anoniem Graag
 
Tim

Tim

06/02/2009 16:32:00
Quote Anchor link
@ Citroen

De validator kan idd static zijn, maar ik heb hem nog wat bijgewerkt en denk dat het dan handiger is om dat niet te doen.

De DB geef ik nu mee aan de class en initieer ik niet in de constructor.

Die addRecord krijgt al een TelefoonboekRecord mee.

En als laatste die return false vervangen door een exception.

Bedankt voor je hulp!
 
Citroen Anoniem Graag

Citroen Anoniem Graag

06/02/2009 17:21:00
Quote Anchor link
dat van die addRecord had ik niet gezien.

Misschien kan je die regel beter vervangen door onderstaande:

public function addRecord(TelefoonboekRecord $record) {

op die manier dwing je af dat er een object van TelefoonboekRecord móét worden meegegeven en niet een ander object.

Verder vraag ik me nog af waarom je de exception geen foutbeschrijving mee geeft?
 



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.