[OOP] Telefoonboek V2

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Fullstack developer

Zie jij mogelijkheden om onze tooling technisch te verbeteren en uit te bouwen? Over Jobmatix Jobmatix is een innovatieve en internationale speler op het gebied van jobmarketing. Onze jobmarketing automation tool helpt organisaties bij het aantrekken van nieuw talent door vacatures digitaal, geautomatiseerd en op een efficiënte manier te adverteren en onder de aandacht te brengen bij de doelgroep op 25+ jobboards. Volledig performance-based, waarbij organisaties betalen op basis van cost per click of cost per applicant. Maandelijks wordt onze jobmarketing automation tool al gebruikt door vele directe werkgevers, intermediairs en mediabureaus, waaronder Picnic, Rijkswaterstaat, AdverOnline, Schiphol, DPA, Teleperformance en

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 »

Senior PHP developer met ambities tot Software Arc

Functie Momenteel zijn ze op zoek naar een ervaren PHP developer die zichzelf graag bezighoudt met zaken als architectuur en de algehele verbetering van structuren en standaarden. Het is eigenlijk meer operationeel als uitvoerend omdat je bezig gaat met zaken als het verder uitrollen en verbeteren van testautomatisering, codereviews, tickets en de doorloop hiervan en architectuurkeuzes. Mocht je hiernaast ook wat DevOps kennis meenemen is dit mooi meegenomen! Vanwege het kleine team maar de wereldwijde impact die zij leveren is er veel focus op kwaliteit. In deze functie werk je aan één van hun belangrijkste applicaties. Hierin werk je nauw

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 »

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 »

Front-end Developer (HTML/CSS, Angular/React/Vue,

Functie Je zal aan de slag gaan in een klein, hecht team met front-end development experts die de ambitie delen mooi werk te leveren. Samen met hen zal je werken aan het gebruiksvriendelijk en interactief maken van complexe webapplicaties, websites en mobile apps. Je levert klanten wat ze nodig hebben terwijl je actief aan jezelf blijft werken met de ondersteuning vanuit je werkplek. Talen als Javascript programmeer jij vloeiend en je hebt kennis van frameworks als React en Angular. Je zou je het liefst nog veel meer ontwikkelen in verschillende front-end talen. Deze kennis deel je graag met je collega’s,

Bekijk vacature »

Medior/senior Back-end developer gezocht!

Functie Vanwege de groei binnen het bedrijf zijn we op zoek naar versterking in het devlopmenttean. Als back-end developer bouw je aan de bedrijfssoftware die ons helpt bij de primaire processen. Een leuk (intern) project dus waarbij je de software continu doorontwikkeld! Je werkt in een klein team, we hebben dagelijks stand-ups en iedere twee weken een scrum-sessie, begeleid door onze Scrum Master. Hierin krijg je uitgebreid de kans om je ideeën te presenteren, en te overleggen met je mede-ontwikkelaars en de Product Owner. Binnen de ontwikkelteams gebruiken we Trello, Gitlab, Jiira, Confluence en Boockstack. Hiernaast werken ze met de

Bekijk vacature »

Softwareontwikkelaar Cleopatra

Functieomschrijving Voor de gemeente Amsterdam zijn wij op zoek naar een softwareontwikkelaar Cleopatra. De directie Verkeer en Openbare ruimte van de gemeente Amsterdam beschikt over een softwareapplicatie, "Cleopatra", waarmee geautomatiseerde handhaving plaatsvindt (op basis van kentekenherkenning) van bepaalde gebieden waarin toegangseisen worden gesteld aan het verkeer. Voorbeelden ervan zijn de milieuzones, de zone zwaar verkeer, handhaving van brom- en snorfietser op het fietspad en autoluwe gebieden. Voor de doorontwikkeling en uitbreiding ervan zijn gespecialiseerde softwareontwikkelaars nodig die helpen bij het programmeren van de handhavingsmodules voor nieuwe gebieden en het verbeteren en bijwerken van de bestaande onderdelen van de softwareapplicatie. Functie

Bekijk vacature »

Software Developer

Dit ga je doen Je bent verantwoordelijk voor de warehouse applicatie die een integratie heeft met de PLC laag; Je ontwikkelt in C#/.Net; Je werkt mee aan de migratie naar .NET 6; Je bent verantwoordelijk voor het ontwikkelen van interfaces en het visualiseren van componenten; Je denkt mee over het design voor business oplossingen; Je bent verantwoordelijk voor het testen van de gebouwde oplossing. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Software Developer. Zij zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van

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 »

.NET Developer

Dit ga je doen Binnen het team bouw je aan een applicatie met andere .Net Developers, testers een Product Owner en een Business Analyst. Met het team wordt de backlog besproken. In overleg claim jij jouw deel en zorgt ervoor dat onderhoud en innovatie wordt gerealiseerd. Het project dat momenteel draait is het opgraden van de omgeving. Doorontwikkelen van de huidige applicatie; Overleggen met teamleden om de backlog te verdelen; Onderhouden van de huidige omgeving; Sparren met de business en het ophalen van nieuwe requirements. Hier ga je werken De organisatie is een van de grootste landelijke aanbieder van diverse

Bekijk vacature »

Traineeship Java Developer

Functie Wat ga je doen als Java Developer? Jij start via ons bij deze opdrachtgever als Trainee Java ontwikkelaar, tijdens het traineeship ga je in 1 jaar van de basis naar professioneel Java ontwikkelaar. Je start samen met een groep trainees, volgt de aangeboden cursussen en gaat aan de slag bij één van onze opdrachtgevers. Na een aantal maanden volgt de volgende opdracht. Door de groei in jouw rol kom je op steeds complexere opdrachten terecht. Veel afwisseling dus. Collega’s met ervaring helpen je bij deze groei en samen met jouw coach ga je een persoonlijke leerplan opzetten om jou

Bekijk vacature »

Embedded Software Developer

Functie omschrijving Ben jij een Embedded Software Developer die affiniteit heeft met de allernieuwste technieken? Voor een mooi softwarebedrijf in omgeving Gouda zijn wij op zoek naar een Embedded Software developer. Binnen deze rol houdt jij je bezig met alle werkzaamheden die nodig zijn om een functionaliteit te bouwen. Denk aan ontwerpen, architectuur, programmeren en algoritmes. Je voert test en validatie werkzaamheden uit bij de implementatie bij de klant. Ben jij enthousiast en een echte team player? Lees dan snel verder en laat wat van je horen! Bedrijfsprofiel Onze opdrachtgever bestaat uit een groot aantal creatieve en ambitieuze ontwikkelaars. Ze

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Heb jij altijd al willen werken voor een bedrijf, dat veilige netwerkverbindingen levert, door middel van veilige oplossingen, die door middel van de nieuwste technologieën ontwikkelt zijn? Stop dan nu met zoeken! Voor een opdrachtgever in omgeving Moordrecht zijn wij op zoek naar een programmeur. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten goed verlopen. Je gaat klanten ondersteunen op

Bekijk vacature »

Back-end developer (Magento2)

Functie E-commerce is een ‘’snelle’’ wereld. Om hierin continu voorop te blijven omarmen ze in een vroeg stadium nieuwe technieken. Een webshop is nooit af en kan altijd beter, sneller en efficiënter. Tegelijkertijd hebben ze vanaf hun oprichting altijd vastgehouden aan kwaliteit boven snelheid, en dit loont. Als back-end developer fungeer je als het verlengstuk van hun klanten. Technisch complexe zaken pak je met liefde op, en hierin werk je samen met o.a. front-end developers en designers. Klanten verwacht hierin kwaliteit van het hoogste niveau en een proactieve, meedenkende rol bij het maken van zowel technische als strategische keuzes. Ga

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

28/04/2024 08:56:41
 
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.