OOP gedachtengang

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Front-end Developer

Onze klant is sinds 2 jaar actief als adviseur en bemiddelaar in de verzekeringsmarkt. Sindsdien proberen zij deze slapende markt flink wakker te schudden. Dit willen zij doen door het bouwen van slimme vergelijkers op hun eigen website en die van partners. Het bedrijf wil continu voorop lopen, zodat consumenten eenvoudig de verzekeringen kunnen vinden die het beste bij ze past. Functieomschrijving Als Front-end Developer werk je aan vergelijkingsmodules die consumenten dagelijks gebruiken bij het vergelijken en afsluiten van verzekeringen. Je vindt het leuk om samen te werken met de product owner, bestaande modules te verbeteren en nieuwe vergelijkers "from

Bekijk vacature »

Software developer (Python)

Functie Je komt te werken in het IT-team bestaande uit de Lead developer en 4 (medior/senior) developers. Gezamenlijk werken jullie aan de verbetering en uitbreiding van de software. Binnen het development team is er veel vrijheid en zelfstandigheid, zonder dat ze hiermee afdoen aan de kwaliteit. Zo hebben ze elke ochtend een korte stand-up (10:00 uur) en houden ze zo nu en dan pair-programming sessies. Ook is er een hele professionele ontwikkelcyclus waarbij code altijd eerst door een collega wordt getest voordat het naar deployement gaat. Je hebt in je werk oog voor kwaliteit, risico’s en het klantbelang. Communicatie met

Bekijk vacature »

Developer Low-code

Dit ga je doen Low-code ontwikkeling van software voor landelijk bekende organisaties; Opleveren van mooie eindproducten, middels de Agile methodiek; Samenwerken in een team van 10 collega's; Direct contact met de eindklant over de gewenste oplossingen. Hier ga je werken Als Developer 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. De

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 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. Ze zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van de warehouses. Op dit moment wordt er nog gebruik

Bekijk vacature »

Front-end (Angular) developer

Functie Om bovenstaande ambities waar te kunnen maken zijn ze op zoek naar een Front-end (Angular) developer. Het it-team bestaat momenteel uit de IT Manager, 2 back-end developers, 1 fullstack developer, 1 designer en een DevOps engineer. Ze zijn dus op zoek naar professionals die autonoom en gedisciplineerd aan de slag gaan, en bij aanvang als enige developer met hun Front-end applicaties aan de slag gaat. Wel hebben ze de ambitie om hier snel een 2e developer bij te vinden die jij dan ook zal kunnen aansturen/begeleiden. Je zult aan de slag gaan met het doorontwikkelen van hun bestaande UI

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET developer begint jouw dag na een bak koffie met een stand up. De vorderingen worden tijdens de stand up besproken en de doelen worden opgesteld waar jullie als team in de volgende sprint naartoe gaan werken. Onze backend is geschreven in .NET Core en onze Front-end in Angular. Bij ons ga jij dan ook Fullstack aan de slag. Jij wordt hier opgeleid om zelfstandig te kunnen programmeren en applicaties te kunnen implementeren. Er wordt op projectbasis gewerkt, dit bied leuke uitdagingen omdat elke klant een andere visie heeft over de applicatie die wij maken. Je gaat

Bekijk vacature »

C# .NET Developer

Dit ga je doen Ontwikkelen van de Back-end in .NET6 / C# en WebAPI (Focus);) Ontwikkelen van de Front-End in Nodje.js en Angular (secundair); Ontwikkelen in Blazor; Opstellen van een technisch ontwerp; Testen, documenteren en implementeren van de nieuwe applicatie; Verzorgen van de nazorg, na de implementatie. Hier ga je werken Binnen deze organisatie werken duizenden mensen binnen allerlei verschillende disciplines. Tevens hebben zij veel specialiteiten in huis, waaronder ook .Net Developers. Ter uitbreiding van een nieuw team en ter ondersteuning van het project zijn ze opzoek naar een nieuwe collega voor het team. Als C#.NET Developer zal jij je

Bekijk vacature »

Freelance JAVA / C# Developer

Functieomschrijving Ben je een ervaren freelancer of werk je in loondienst en ben je toe aan een nieuwe uitdaging? Lees dan snel verder want wie weet is dit een leuke vacature voor jou! Voor een opdrachtgever in omgeving Delft zijn wij op zoek naar ervaren JAVA of C# Developers die graag op projectbasis willen werken. Je komt terecht bij een informele developers club die mooie projecten uitvoeren voor grote klanten. Het fijne van deze werkgever is dat je zelf mag beslissen hoe je te werk wilt gaan. Wil je als freelancer werken dan is dat OK. Wil je de zekerheid

Bekijk vacature »

Front-end Developer - React - Data Driven

Bedrijfsomschrijving Onze klant is een snelgroeiende organisatie die een data-driven inspectieapp op de markt hebben gebracht die nu al een aantal jaar door verschillende organisaties wereldwijd gebruikt wordt. Er zijn zo'n 6 mensen werkzaam bij dit bedrijf en ze zijn nu vooral op zoek naar een sterke front-end developer die wil gaan werken aan nieuwbouw applicaties en de uitbouw van de huidige applicaties. De reden dat ze zoeken is omdat er veel werk op komst is en ze hier de juiste capaciteit voor willen hebben. Er heerst hier een hele prettige sfeer waarin respect en eerlijke communicatie belangrijk is. Ook

Bekijk vacature »

Back-end Developer

Functieomschrijving Voor een erkende werkgever in de regio van Middelburg zijn wij op zoek naar een enthousiaste PHP / Symfony Developer. Een ambitieus persoon die het gemotiveerde development team komt versterken met het realiseren van nieuwe en complexe projecten. Ben jij op zoek naar een baan met veel uitdaging binnen een snelgroeiend e-commerce bedrijf, waar je de tijd en ruimte krijgt voor professionele groei? Dit ga je doen: Je bent verantwoordelijk voor de beheer en ontwikkeling van de serviceportal in Symfony en de webshops in de tweede versie van Magento; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten;

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 »

Software Developer PHP

Functie omschrijving We are looking for a dutch native speaker Voor een opdrachtgever in de regio van Geldrop ben ik op zoek naar een Software Developer PHP. Jij krijgt een rol met veel verantwoordelijkheid in een groeiende organisatie. In deze functie werkt je voornamelijk remote en op een vast moment kom je met het team samen, om samen te werken en nieuwe doelen te bepalen. Wat ga je doen? Je wordt verantwoordelijk voor de interne applicatie; Je zorgt voor de doorontwikkeling van de applicatie: zowel back-end, front-end; De basis van het werk betreft front-end technieken; Periodiek bepaal je samen met

Bekijk vacature »

Junior PHP (Laravel) Developer

Functie omschrijving Wij zijn op zoek naar een PHP Laravel Developer! Sta je aan het begin van je carrière en ben je op zoek naar een leuke baan? Lees dan verder! Voor een softwarebedrijf in omgeving van Schiphol zijn wij op zoek naar een ervaren PHP (Laravel) Developer. Je gaat je bezighouden met het ontwikkelen van innovatieve bedrijfsapplicaties. Samen met het team, bestaande uit designers en developers, maak je mooie oplossingen voor bedrijven in diverse branches. Je zorgt dat de opgeleverde websites perfect werken en de klant meer dan tevreden is. Je kunt rekenen op een afwisselende baan met leuke

Bekijk vacature »

Software Developer (Junior functie)

Functieomschrijving Wij zijn op zoek naar een Software Developer! Sta jij in de startblokken om je carrière te beginnen en kan je niet wachten om toffe software te gaan ontwikkelen? Kortom, ben je onlangs afgestudeerd of sta je op het punt om je papiertje te behalen? Voor een IT dienstverlener dat gespecialiseerd is in Microsoft technologie zijn wij op zoek naar C#.NET Developers. Het bedrijf heeft meerdere klanten in regio Utrecht waar je permanent kan komen te werken. Kom je liever te werken bij een klein softwarebedrijf of bij een groot consultancy bureau? Dat is helemaal aan jou de keuze!

Bekijk vacature »

C# Ontwikkelaar

In het kort Als C# .NET Core ontwikkelaar ga je binnen onze business unit Transport en Logistiek aan de slag complexe maatwerk software voor bedrijf kritische systemen binnen de technische automatisering. Denk bijvoorbeeld een IoT-oplossing voor de logistieke sector waarbij we van ruim 200.000 machines de telemetrie en events verwerken. We zijn actief in de distributielogistiek, havenlogistiek en productielogistiek. Naast C# en .NET Core maken we ook gebruik van Azure technologie. En als trotse Microsoft Gold Partner leren we graag van en met jou. Wil jij jezelf blijven ontwikkelen binnen de technische automatisering met .NET, dan gaan we deze uitdaging

Bekijk vacature »

Pagina: « vorige 1 2 3 4 5 volgende »

Jasper DS

Jasper DS

06/06/2012 15:25:49
Quote Anchor link
Maar waarom staat deze regel daar nu in die functie?
 
PHP hulp

PHP hulp

24/04/2024 23:59:13
 
Jeroen VD

Jeroen VD

06/06/2012 15:29:50
Quote Anchor link
hetzelfde als met gewoon database gebruik:

bij procedurele queries moet je eerst fetchen, en komt er een array uit, of een object, of net wat je zelf wilt. je zult dan wel nog jouw benodigde gegevens uit die array of object moeten halen.

hetzelfde hier, $result is alleen nog maar gefetcht. en is een array. dus met $result['id'] haal je het id uit de array.
 
Jasper DS

Jasper DS

06/06/2012 15:30:36
Quote Anchor link
en waarom zou ik dat willen doen in die desbetreffende functie?
 
Jeroen VD

Jeroen VD

06/06/2012 15:36:31
Quote Anchor link
hmm das inderdaad gek ja. ik dacht dat je de regel niet begreep, maar ik snap zelf het nut eigenlijk ook niet, nee.
 
Jasper DS

Jasper DS

06/06/2012 15:42:11
Quote Anchor link
Ik begreep de syntax en de inhoud wel maar de bedoeling niet. ;)
 
Erwin H

Erwin H

06/06/2012 15:55:29
Quote Anchor link
Zo te zien komt het omdat het id niet wordt opgehaald uit de database:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT name, password, email, logged_in FROM users WHERE id = ?

Het id is namelijk al bekend en hoef je dus niet uit de database te halen, maar kan je direct in het object zetten. Anders zou je in het select ook 'id' moeten opnemen in de kolomnamen.
 
Wouter J

Wouter J

06/06/2012 16:29:34
Quote Anchor link
Erwin's uitleg klopt inderdaad. Ik heb altijd het gevoel alsof de manier die ik hier gebruik sneller is als het ophalen uit de DB en dus doe ik het altijd zo, maar kan er ook naast zitten.

Tevens, waarom de id niet in de constructor? Omdat een User niet verplicht een ID heeft. Als je een nieuwe user aanmaakt weet je nog geen ID, je hebt immers alleen het object. Pas als je het in de DB plaats met de UserMapper weet je het ID en die moet je dus apart kunnen zetten. (dat zie je ook automatisch gebeuren in UserMapper::create(). Daar zie je dat na het aanmaken van de User de User::setId() method wordt aangeroepen en de user het laatst aangemaakte ID krijgt (weet niet of die regel helemaal klopt in het script, maar gaat om het idee).

Quote:
En moet er telkens aangeduid worden welk type? Ik dacht dat dat in php niet hoefde in tegenstelling tot andere programmeertalen zoals java en C.

Dat klopt. Alleen ik hou altijd van controle. In een klasse wil ik zeker weten dat de waarde van de properties de waarde hebben die ik verwacht, vandaar dat ik ze allemaal typecast. Ik noem het maar een goede gewoonte.
 
Roel -

Roel -

06/06/2012 19:43:11
Quote Anchor link
Wouter, heb je misschien een voorbeeld in de praktijk van hoe je nu bijv. je User class verwerkt i.c.m. een form en validatie? Dat is mij nog niet helemaal duidelijk namelijk.
 
Wouter J

Wouter J

06/06/2012 19:50:31
Quote Anchor link
Het is eigenlijk gewoon heel simpel:
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
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $errors = array();

    if (!(isset($_POST['name'])) || ($_POST['name'] === '')) {
        $errors[] = 'Je bent vergeten een username in te vullen.';
    }

    if (!(isset($_POST['password'])) || ($_POST['password'] === '')) {
        $errors[] = 'Je bent vergeten een wachtwoord in te vullen.';
    }

    if (!(isset($_POST['email'])) || ($_POST['email'] === '')) {
        $errors[] = 'Je bent vergeten een email adres in te vullen';
    }


    if (count($errors) > 0) {
        // geen fouten, registreer user
        // maak een User object aan

        $user = new User($_POST['name'], $_POST['password'], $_POST['email']);
        $userMapper = new UserMapper();

        $user = $userMapper->create($user);

        $message = 'Hallo '.$user->getName().', welkom op deze website!';
    }
}

// ...
?>


Eventueel zou je het formulier validatie ook kunnen laten doen door een Form klasse, maar dat gaat wel erg ver voor dit topic (en om eerlijk te zijn heb ik dat zelf ook nog niet helemaal door...).
 
Roel -

Roel -

06/06/2012 20:03:26
Quote Anchor link
Je gebruikt dus geen try ... catch constructies? Het is me nu een stuk duidelijker.
Bedankt :-)
 
Wouter J

Wouter J

06/06/2012 22:46:24
Quote Anchor link
Niet voor foutafhandeling van dingen de de gebruiker verkeerd doet. Of nou, nu ik het zeg. Het kan natuurlijk ook:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if (...) {
    $errors = array();
    if (!isset(...)) {
        $errors[] = 'Je moet nog een naam invullen';
    }

    // ...

    if (count($errors) > 0) {
        throw RunTimeException(implode(', ', $errors));
    }
}

?>


Maar het lijkt me handiger om RunTime fouten af te handelen met gewone normale error systemen, omdat je meerdere fouten tegelijkertijd wilt tonen.
 
Jasper DS

Jasper DS

07/06/2012 17:31:13
Quote Anchor link
Nu ben ik mij aan het afvragen hoe ik de login functie maak. Eerst en vooral ga ik niet opslaan in de database of mijn user ingelogged is aangezien dat in mijn applicatie niet belangrijk is.

Nu was ik aan het denken om aan mijn User class een functie login() toe te voegen en aan mijn UserMapper een functie getByNameAndPass(). In de login functie word de sessie dan aangemaakt en de getByNameAndPass() checkt of de user bestaat en populate() hem als die bestaat zodat ik kan inloggen.

Zit ik juist?
 
Wouter J

Wouter J

07/06/2012 17:52:47
Quote Anchor link
Heel strict genomen mag een User object zelf geen login uitvoeren en heb je daar een eigen klasse voor nodig. Maar ik denk dat het in dit geval wel goed zou zijn.
 
Jasper DS

Jasper DS

07/06/2012 19:06:44
Quote Anchor link
@Wouter, er loopt toch iets mis in mijn logica.

PRODUCELE CODE:
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
<?php
try
{
    $db = new PDO('mysql:host=localhost;dbname=visit_report','root','***');
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Set Errorhandling to Exception
}    
catch(PDOException $e)
{

    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

    
$userMapper = new UserMapper($db);
$user = new User('jasper' , sha1('test'));
echo $userMapper->getByNameAndPass($user);
echo 'Id: ' . $user->getId();
echo '<br/> Name: ' . $user->getName();
echo '<br/> Password: ' .$user->getPassword();
?>


UserMapper->getByNameAndPass(User $user)
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
<?php
public function getByNameAndPass(User $user)
    {

        $stmt = $this->db->prepare("SELECT COUNT(gebruikersid) AS tel, gebruikersid, naam, wachtwoord FROM gebruikers WHERE naam = :name and wachtwoord = :password");

        $stmt->execute(array(
            ':name' => $user->getName(),
            ':password' => $user->getPassword()
        ));

    
        $result = $stmt->fetch(PDO::FETCH_ASSOC);
        
        if($result['tel'] < 1)
        {

            return 'Geen resultaat gevonden';
        }

        else
        {
            return $this->populate($result);
        }    
    }

?>


Zoals je ziet return mijn functie 'Geen resultaat gevonden' als de gegevens niet kloppen maar als het wel klopt returnt de functie de populate functie die op zijn beurt een volledig object return waardoor ik volgdende fout krijg.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Catchable fatal error: Object of class User could not be converted to string in C:\xampp\htdocs\testjes\User.class.php on line 150
 
Jurgen B

Jurgen B

07/06/2012 20:16:03
Quote Anchor link
Je probeert op regel 14 getByNameAndPass($user) te echoen, wat niet gaat omdat deze functie een User object teruggeeft. Het zou wel kunnen maar dan moet je een toString functie maken (dit kan bij Java, neem aan ook bij PHP).

Dus je wilt de return asignen aan een variabele welke je vervolgens kan echoen zoals je in de regels daaronder al deed. Echter echo je daar de gegevens van de $user die je zelf aanmaakt (jasper) ipv het resultaat van je query.
 
Wouter J

Wouter J

07/06/2012 20:18:02
Quote Anchor link
Jurgen, in PHP heb je de __toString magic method.

Jasper, ik zou het wat anders doen. Als er iets fout gaat return je false en anders de User object. Errors handel je met Exceptions af.
 
Jasper DS

Jasper DS

07/06/2012 22:37:40
Quote Anchor link
Dan veronderstel ik op deze manier:

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
<?php
public function getByNameAndPass(User $user)
    {

        $stmt = $this->db->prepare("SELECT COUNT(gebruikersid) AS tel, gebruikersid, naam, wachtwoord FROM gebruikers WHERE naam = :name and wachtwoord = :password");

        $stmt->execute(array(
            ':name' => $user->getName(),
            ':password' => $user->getPassword()
        ));

    
        $result = $stmt->fetch(PDO::FETCH_ASSOC);
        
        if($result['tel'] < 1)
        {

            return false; // Geen resultaat gevonden
        }
        else
        {
            return $this->populate($result);
        }    
    }

?>


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
<?php
/* Login testen */

try
{
    $db = new PDO('mysql:host=localhost;dbname=visit_report','root','jasper');
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Set Errorhandling to Exception
}    
catch(PDOException $e)
{

    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

    
$userMapper = new UserMapper($db);
$user = new User('jasper' , sha1('test'));
if($userMapper->getByNameAndPass($user) == false)
{

    echo 'Uw gegevens zijn niet correct.';
}

echo 'Id: ' . $user->getId();
echo '<br/> Name: ' . $user->getName();
echo '<br/> Password: ' .$user->getPassword();
?>
 
Wouter J

Wouter J

07/06/2012 22:39:20
Quote Anchor link
Ja, alleen doe je nu niks met de geretourneerde user klasse. Sla deze op in $user.
 
Jasper DS

Jasper DS

11/06/2012 21:13:01
Quote Anchor link
Zo, nu heb ik eigenlijk een simpel "inlog systeempje" in de OOP vorm. :-)
Dan nu het degelijk opslaan van mijn classes. Ik heb voorlopig 2 classes. De User en de Usermapper. Zet ik deze in 2 apparte bestanden of wat doe ik daarmee? Moet ik dan ook telkens al mijn classes inladen of laad ik deze in in één bestand dat ik nadien inlaad in mijn andere pagina's?
 
Wouter J

Wouter J

11/06/2012 21:54:18
Quote Anchor link
Jasper, je plaats elk bestand in een aparte bestand en ook in aparte mappen op categorie. Dus zeg maar zoiets:
/project/
/project/lib/User/User.php
/project/lib/User/UserMapper.php
/project/lib/Post/Article.php
/project/lib/Post/PostMapper.php
/project/lib/Post/PostFactory.php
/project/lib/Post/BlogPost.php

Dan kun je mooi en makkelijk gaan werken met autoloaders. Zorg dat je klassennamen de PSR-0 standaard volgen en je kunt heel simpel hun spl autoloader gebruiken. Dat werkt dan ong. zo:
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
<?php
function my_spl_autoloader($class)
{

    // functie wordt elke keer bij het aanmaken van
    // een onbekende klasse aangeroepen, zodat je de
    // klasse kunt laden

    // do some fancy stuff

    // laad het bestand

    require __DIR__.DIRECTORY_SEPARATOR.$class;
}


// registreer de autoloader
spl_autoload_register('my_sql_autoloader');
?>
 

Pagina: « vorige 1 2 3 4 5 volgende »



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.