[oop] hoe consante terugkrijgen?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Leidinggevend Full Stack Developer

Hé jij, nieuwe Pinkcuber! Ga aan de slag bij Pinkcube, online leverancier van promotieartikelen! Een innovatieve organisatie waar extra stappen zetten voor klanten de normaalste zaak van de wereld is. Ambitieus zijn we ook. ‘Naoberschap’ staat bij Pinkcube hoog in het vaandel; we helpen elkaar en iedereen is welkom. Pinkcube is Great Place to Work Certified, erkend leerbedrijf, maatschappelijk betrokken partner van stichting Present en partner van CliniClowns. En misschien wel jouw nieuwe werkgever. Wij zoeken namelijk een enthousiaste: Leidinggevend Full Stack Developer (40 uur, medior/senior) Ben jij klaar om baanbrekende ideeën tot leven te brengen en deel uit te

Bekijk vacature »

Gezocht: .Net ontwikkelaars met een maatschappelij

Bedrijfsomschrijving Zoek jij als medior .Net ontwikkelaar een inspirerende werkplek bij een bedrijf met maatschappelijk verantwoordelijkheidsgevoel? Dan is deze vacature je op het lijf geschreven. De organisatie bestaat ruim 20 jaar en ze ontwikkelen in house applicaties waarmee de zorgsector enorm mee gebaat is. Jouw applicaties worden gebruikt door duizenden gebruikers waardoor je echt een waardevolle bijdrage kan leveren aan de maatschappij. Het bedrijf is zeer innovatief en vindt een goede werk/privé balans belangrijk. Je krijgt alle mogelijkheden om jezelf verder te ontwikkelen, je werktijden in te delen en daarnaast is het ook mogelijk om deels thuis te werken. Het

Bekijk vacature »

Back-End Developer in Laravel / PHP

Functie omschrijving Wij zijn op zoek naar een Medior PHP Laravel Developer voor een gaaf bedrijf in de omgeving van Amsterdam! Voor een enthousiast team die zich graag bezig houdt met softwareontwikkeling zijn wij op zoek naar versterking. Je werkt in een klein ontwikkelteam en bent zeer betrokken bij alle aspecten van de softwareoplossingen. Van het ontwerpen tot de oplevering. Binnen deze functie ga je aan de slag met het aanpassen, verbeteren en vernieuwen van de logistieke oplossingen. Je krijgt veel te maken met koppelingen naar systemen en de verzoeken van de klant. Je komt terecht in een team, waarbij

Bekijk vacature »

Medior .NET Ontwikkelaar

In het kort Als .NET 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 graag met

Bekijk vacature »

Web Application Developer

Dit ga je doen Samen met het team werk je aan de visualisatie functionaliteiten en hoe dit gebruikt kan worden in een operationele setting; Het ontwerpen, ontwikkelen, onderhouden en leveren van support betreft het Warehouse Management Systeem en de bijbehorende web visualisaties; Je gebruikt hierbijde tools WebGL en ASP.net; Het meewerken in implementatieprojecten; Het leveren van Go-Live Support; Sparren met jouw Amerikaanse collega's. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Web Application Developer. Ze zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van

Bekijk vacature »

Senior/Lead Python developer

Functie Samen met je team, bestaande uit een senior, 2 mediors en één junior ontwikkelaar ga je op een Agile-gebaseerde aanpak werken aan hun software. Je hebt oog voor kwaliteit, risico’s en klantbelang. Communicatie met je collega’s en waar nodig ook met klanten speelt een belangrijke rol in het bereiken van een succesvol resultaat. Als persoon ben je slim, krijg je dingen voor elkaar en ga je resultaatgericht te werk. Binnen het development team is er veel zelfstandigheid, los van de stand-up (10:00 uur) en zo nu en dan pair-programming sessies. Technieken die zij gebruiken zijn o.a. Python, Django, MySQL,

Bekijk vacature »

.NET developer

Functie Als ervaren .NET ontwikkelaar start jij in één van onze vier scrumteams. Met 30 ontwikkelaars werk jij aan de doorontwikkeling van ons core product. Ook werkt jouw team aan maatwerkoplossingen op aanvraag van de klant en op projectbasis. Wij vinden het erg belangrijk dat onze ontwikkelaars met plezier naar werk gaan. Een deel hiervan ligt uiteraard bij jezelf, als jij ontwikkelen niet leuk vindt, ben jij bij ons echt aan het verkeerde adres. Jouw team bestaat namelijk uit een groep gepassioneerde vakidioten die dit werk doen omdat dit eerst een hobby was! Daarnaast wordt er intern rekening gehouden met

Bekijk vacature »

Front-end Developer Magento 2/Wordpress

Voor het aantrekkelijk houden en steeds vernieuwen van de huidige websites en webshops en het meedenken in de marketing zijn wij per direct op zoek naar een ervaren Front-end developer met gedegen kennis van Magento 2 (webshops) en Wordpress (websites). Wat bieden wij jou Mooi salaris! Meteen op contract bij de opdrachtgever! Gezellig, Kempisch bedrijf! 35 uur per week! Auto van de zaak! Wie ben jij Van een front-end developer verwachten wij: Een afgeronde Bachelor ICT opleiding met profiel ICT & Media Design. Dat je in het bezit bent van een Magento 2 professional front-end developer certificaat; Je hebt ruime

Bekijk vacature »

Senior Lead Front End Developer

Functieomschrijving Voor Stichting Waternet zijn wij op zoek naar een senior Lead Front End Developer. Binnen het DevOps team Online zijn we op zoek naar een Senior Lead Front End developer met kennis van toegankelijkheid. Deze developer zal zich bezighouden met development van webpaginas die in verbinding staan met systemen uit het back office. Taken Ontwerpen, ontwikkelen, implementeren, documenteren en beheren van webapplicaties in een Azure-omgeving Debuggen, analyseren en oplossen van problemen in de OTAPomgevingen Je participeert in het DevOpsTeam Online voor het verder uitwerken en implementeren van gebruikerswensen Je bent betrokken bij toegankelijkheid audits en het implementeren van WCAG

Bekijk vacature »

Software Developer / .NET / Azure

Dit ga je doen Als Lead .NET Software Developer zal je je bezig houden met: Het vertalen van bedrijfswensen naar een technische roadmap; Uitwerken van nieuwe architectuur / designs; Het team aansturen en motiveren; Toezien op de kwaliteit van de code; Mee ontwikkelen van nieuwe features en applicaties. Hier ga je werken Deze organisatie is op dit momenteel marktleider in het ontwikkelen van productielijnen voor de voedselindustrie en heeft een wereldwijd klantnetwerk. Binnen deze organisatie is het team van software developers dagelijks bezig met het ontwikkelen van maatwerk oplossingen om alle productiemachines aan te sturen, maar ook bedrijf kritische applicaties

Bekijk vacature »

Junior PHP Developer

Dit ga je doen Software development met behulp van C# .NET en / of PHP, je mag zelf kiezen waar jij je in wil specialiseren Meedenken over het nieuwe pakket, waar moet het aan voldoen? Unit-, integratie- en diverse andere tests schrijven en uitvoeren Nauw samenwerken met je IT collega's zoals Testers, Developers, DevOps Specialisten en Architecten Jezelf ontwikkelen met behulp van trainingen en cursussen Hier ga je werken Onze klant, een grote speler in de medische sector, is op zoek naar een enthousiaste junior (of meer ervaren) Software Developer die klaar is voor een nieuwe stap in zijn of

Bekijk vacature »

Productontwikkelaar Food

Wat ga je doen Als Productontwikkelaar Food ga je nieuwe producten ontwikkelen en bestaande producten verbeteren. Je bent hierbij betrokken bij het gehele proces: van productconcept naar proefreceptuur, het realiseren va het product (op kleine schaal) en het testen van producten in een productieomgeving. Verder: Bewaak je de status van verschillende fases van productontwikkeling en lever je tijdig de benodigde data aan Ben je bezig met de optimalisatie van oude en nieuwe recepturen Begeleid of organiseer je proefsessies (sensorisch onderzoek) in het team en/of bij klanten Onderhoud je contacten met de klanten, leveranciers van grondstoffen e.a. externe partijen Houd je

Bekijk vacature »

Java Developer / Sociaal domein

Dit ga je doen Nieuwbouw en doorontwikkeling; Beheer en wanneer nodig onderhoud; Bijdrage leveren in het functioneel- en technisch ontwerptraject; Analyseren van productie verstoringen; Meedenken over vernieuwingen en verbeteringen. Hier ga je werken De organisatie waar jij komt te werken focust zich op software development met een maatschappelijk tintje. De afdeling software ontwikkeling bestaat uit vijf verschillende scrum teams, met allen hun eigen focus gebied. Zo zijn er een aantal teams die zich focussen op specifieke applicaties, maar is er ook een team gericht op projecten. Binnen de organisatie staat innovatie en kwaliteit voorop. Een aantal applicaties draait nog op

Bekijk vacature »

SQL beheerder / ontwikkelaar

Functie omschrijving Voor een klant in omgeving Tiel zijn wij op zoek naar een SQL beheerder met affiniteit met technisch applicatiebeheer. Je krijgt een fijne in-house werkplek waar je gaat werken aan diverse projecten. Dit bedrijf doet het beheer van databases voor een aantal bancaire klanten. Op dit momenten hebben zij ruim 1500 databases in beheer. Jouw werkzaamheden gaan er als volgt uit zien: Je gaat de development afdeling ondersteunen bij het ontwikkelen van MS SQL Scripts. Je zal zowel zelfstandig als in teamverband MS SQL databases installeren & beheren. Je monitort en onderzoekt incidenten en de achterliggende oorzaken. Je

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

Ozzie PHP

30/04/2014 13:28:04
Quote Anchor link
Hey guys,

In sommige gevallen is het handig om de ISO normering aan te houden. Waarom? Omdat andere programmeurs dat ook doen, en omdat je dan precies weet wat een bepaalde waarde inhoudt.

Er zijn heel veel ISO-lijstjes en één daarvan is bijvoorbeeld een lijstje voor iemands geslacht: http://en.wikipedia.org/wiki/ISO/IEC_5218

Dat lijstje ziet er ongeveer als volgt uit:

0 = unknown
1 = male
2 = female
9 = not_applicable

Nu is dit op zich niet een heel groot lijstje, maar toch heb ik geen zin om die getallen te moeten onthouden. Dus leek het me handig om hier een interface van te maken, als volgt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
interface gender {

    const unknown       = 0;
    const male          = 1;
    const female        = 2;
    const not_appicable = 9;

}

?>

Het idee is nu dat als ik weet dat iemand een man is, dat ik dan dit kan doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$person
= new Person();
$person->setGender(gender::male);
?>

Dit lijkt me namelijk een stuk duidelijker dan dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$person
= new Person();
$person->setGender(1);
?>

Zijn jullie het met deze gedachte eens?

Nu is echter mijn vraag... stel dat ik deze persoon opsla in de database, dan staat er in de database bij "gender" dus een 1. Dat is prima, want dat willen we ook. Echter, stel nu dat ik een tijdje later de gegevens van die persoon op mijn scherm wil tonen, dan staat er dus bijvoorbeeld:

name: Ozzie
gender: 1

Is het nu mogelijk om in plaats van 1 daar dan de naam van de constante, dus "male", te tonen? Dus:

name: Ozzie
gender: male

Weet iemand of, en zo ja hoe, dat kan?

Alvast bedankt voor de reacties.
 
PHP hulp

PHP hulp

26/05/2026 12:35:24
 
LEDfan nvt

LEDfan nvt

30/04/2014 13:36:43
Quote Anchor link
Hier staat beschreven hoe je dat kan doen http://stackoverflow.com/questions/1880148/how-to-get-name-of-the-constant .
Maar kan je dit niet beter in je view regelen?
 
Wouter J

Wouter J

30/04/2014 13:43:34
Quote Anchor link
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
<?php

class Gender
{
    const UNKNOWN        = 0;
    const MALE           = 1;
    const FEMALE         = 2;
    const NOT_APPLICABLE = 9;

    private $gender;

    public static function __construct($gender)
    {

        if ($gender < 0 || $gender > 9) {
            throw new \InvalidArgumentException('Invalid gender.');
        }


        $this->gender = $gender;
    }


    public function getGender()
    {

        return $this->gender;
    }


    public static function parse($name)
    {

        switch (strtolower($name)) {
            case
'male': $gender = 1; break;
            case
'female': $gender = 2; break;
            case
'not applicable': $gender = 9; break;
            default:
$gender = 0; break;
        }


        return new self($gender);
    }
}


class GenderToTextTransformer
{
    public function transform(Gender $gender)
    {

        switch ($gender->getGender()) {
            case
0: return 'unknown'; break;
            case
1: return 'male'; break;
            case
2: return 'female'; break;
            case
9: return 'not applicable'; break;
        }
    }
}


$genderToText = new GenderToTextTransformer();

$wouter = new Person('Wouter', Gender::parse('male'));
$nienke = new Person('Nienke', Gender::parse('female'));
$robot  = new Person('WuutWuut', Gender::parse('unknown'));

echo 'Wouter is a '.$genderToText->transform($wouter->getGender());
echo 'Nienke is a '.$genderToText->transform($nienke->getGender());
echo 'The gender of WuutWuut is '.$genderToText->transform($robot->getGender());
?>
 
Ozzie PHP

Ozzie PHP

30/04/2014 13:43:54
Quote Anchor link
Ah ja, thanks... dat werkt inderdaad met de reflection class!

>> Maar kan je dit niet beter in je view regelen?

Hoe bedoel je dit?

Toevoeging op 30/04/2014 13:44:41:

Edit: Wouter, ik had je reactie nog niet gezien... ga nu even lezen. Zo dadelijk reactie.

Toevoeging op 30/04/2014 13:49:09:

Wouter, mooie aanpak... maar nogal complex lijkt mij. Ik denk dat de aanpak (zie link van LedFan) met een reflection class een stuk efficiënter/universeler is?
 
Wouter J

Wouter J

30/04/2014 13:59:45
Quote Anchor link
> Ik denk dat de aanpak (zie link van LedFan) met een reflection class een stuk efficiënter/universeler is?

Efficiëntie gaat het niet om in OO hè :) In mijn voorbeeldje heb ik even wat Domain Driven Development toegepast. Daardoor heb ik een Gender Value Object geintroduceerd. En 1 van de regels van Value Objects is: "Don’t use _toString() for presentation." Dus daar heb ik weer een nieuwe klasse voor geïntroduceerd. Op deze manier kun je het gender op verschillende manieren presenteren. Je zou een PresentGender interface kunnen maken en dan krijg je mooie dingen als:

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

interface PresentGender
{
    function
present(Gender $gender);
}


class AsText implements PresentGender
{
    public function present(Gender $gender)
    {

        switch ($gender->getGender()) {
            case
0: return 'unknown'; break;
            case
1: return 'male'; break;
            case
2: return 'female'; break;
            case
9: return 'not applicable'; break;
        }
    }
}


class AsUnicodeSymbol implements PresentGender
{
    public function present(Gender $gender)
    {

        switch ($gender->getGender()) {
            case
0: return 'U+26A8'; break;
            case
1: return 'U+2642'; break;
            case
2: return 'U+2640'; break;
            case
9: return 'U+2205'; break;
        }
    }
}


?>


Maar het toepassen van DDD is vaak erg overdreven en DDD experts staan zelden met beide beentjes op de grond. Je kan ook gaan voor een simpele KISS (Keep It Simple Stupid!) of YAGNI (You Aren't Gonna Need It) aanpak.
 
Ozzie PHP

Ozzie PHP

30/04/2014 14:04:33
Quote Anchor link
Wat ik eigenlijk wil voorkomen is dat die unknown, male etc. op verschillende plekken terugkomen. Het lijkt mij handiger als ik dat gewoon kan doen aan de hand van die constanten in de interface. Met die reflection class zou dat moeten lukken. Ik denk dat dat valt onder de noemer van de KISS aanpak :)
 
LEDfan nvt

LEDfan nvt

30/04/2014 15:57:33
Quote Anchor link
@ozzie wat ik bedoelde met die view is iets zoals Wouterj zij.
 



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.