arrayParser (?)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior Java-ontwikkelaar

Functie­omschrijving Als ICT’er bijdragen aan een veilig en rechtvaardig Nederland? Dat doe je bij SSC-I. Als medior Java-ontwikkelaar verbeter jij de kwaliteit van informatievoorziening voor diverse klanten in het veiligheidsdomein. Van het bestuursdepartement Justitie en Veiligheid tot en met het Schadefonds Geweldsmisdrijven. Je werkt in een DevOps-team. Dat betekent dat je bij alle fases van ontwikkeling betrokken bent. Van de vraag van de klant tot eerste idee tot realisatie. Je werkt in korte cycli volgens de scrum-/agile-aanpak. Zo ben je continu bezig om mooie oplossingen voor onze klanten zo optimaal mogelijk te realiseren. Als echte teamplayer ben jij er trots

Bekijk vacature »

Gezocht/Looking for: Senior .NET Developer - Rotte

Due to extensive growht of our client we are currently searching for a Senior Dot.Net Software Developer. This is for one of our clients in the digital data transformation domain. Vacature Details/ Vacancy Details Contract type: Fixed term contract Start datum/ Date of Joining: immediate (work from home during Covid-19 period) Werkervaring/experience required: Minimum of 6 years experience in a similar role (must have) Understanding of Azure DevOps (must have) Experienced in Agile/Scrum software development Deep understanding of C#, .NET, .NET Core, REST, Azure services(must have) Experience with Kubernetes or Azure Service Fabric Database knowledge (a.o SQL, CosmosDB) Pluspoints would

Bekijk vacature »

Ervaren .NET developer gezocht, api development, .

Ben je een ervaren .NET developer en op zoek naar baan waarbij je je ook meer kunt gaan richten op architectuur? Binnen een leuke, sociale en betrokken werkomgeving? Met technieken als .NET Core en Azure? Dan zou deze baan wellicht iets voor jou kunnen zijn. Voor een organisatie in Rotterdam zijn we op zoek naar eens ervaren .NET ontwikkelaar. De organisatie bevindt zich in de financiële branche en is een van de grotere spelers in hun vakgebied. De organisatie bestaat uit circa 600 medewerkers en heeft verschillende vestigingen in Nederland. Het hoofdkantoor zit in Rotterdam en daar is ook de

Bekijk vacature »

Senior Java Developer vacature

Currently we are specific looking for professionals who speak fluently Dutch on C1 level. Senior Java Developer Jij volgt ontwikkelingen op de voet. Sterker nog: jij bent er onderdeel van. Jij loopt voorop. Jij denkt met klanten mee en helpt hen innoveren. Je verdiept je liever als een Expert, dan dat je jezelf alleen verbreed. Bijvoorbeeld met de ontwikkeling van de Rabobank-app of een verbetering van de beveiliging van treinen voor Pro-rail! Java staat centraal Wij bouwen State of the Art applicaties met de nieuwste technologie en frameworks. Dit doen we door ons te richten op de open source-oplossingen binnen

Bekijk vacature »

Senior Front-end Developer vacature

Currently we are specific looking for professionals who speak fluently Dutch on C1 level. Senior Front-end Developer Jij weet wat er nodig is. Jouw hart gaat sneller kloppen van techniek. Jij wil vooruit. Je bent creatief, thuis in gebruikersinteractie en een Developer in hart en nieren. Daarnaast heb jij een klantgerichte en initiatiefrijke houding. Precies de kwaliteiten die een Front-end Developer nodig heeft. Wat doe jij als developer bij Sogeti? Als Front-end Developer werk je aan de technische realisatie van front-end (web)applicaties in de verschillende opdrachten voor Sogeti’s klanten. Dit kan zowel op klantlocatie, als intern bij Sogeti. Jij houdt

Bekijk vacature »

Mobile App Developer

Ons Mobile-ontwikkelteam zoekt een gedreven Mobile App Ontwikkelaar. Ben jij analytisch en heb je passie voor het ontwikkelen van apps? Dan zijn wij op zoek naar jou! Jouw baan ChipSoft heeft al diverse apps uitgebracht en het aantal gebruikers hiervan neemt snel toe. Je kunt hierbij denken aan apps voor verpleegkundigen, thuiszorgmedewerkers, de sterilisatieafdeling en - natuurlijk - de artsen zelf. Door jouw hands-on-mentaliteit, eigenwijsheid en technisch inzicht kun je nauwkeurig herbruikbare software schrijven. Die software sluit naadloos aan op onze ‘back end’ (HiX, onze ICT-totaaloplossing voor de zorg). Samen met je collega’s ben je verantwoordelijk voor het ontwerpen en

Bekijk vacature »

Medior PHP Developer

Als PHP Developer bij Coolblue zorg je ervoor dat onze webshops bizar snel en superstrak zijn. Hoe word ik Medior PHP Developer bij Coolblue? Als Medior PHP Developer werk je met andere development teams samen om onze webshop zo optimaal mogelijk te laten werken en onze klanten blij te maken. Hoewel je een PHP Developer bent, ben je niet vies van een beetje C# of Javascript. ‘’Ook Medior PHP Developer worden bij Coolblue? Else de Boer legt je uit hoe je dat doet.” Dit vind je leuk om te doen PHP code schrijven, maar kan je weg ook vinden in

Bekijk vacature »

Fullstack Developer Angular 6 Java Complexe omgevi

Functieomschrijving Ben jij toe aan een nieuwe uitdaging binnen een complexe technische omgeving en wil jij met je ruime kennis van Java bijdragen aan een optimaal wegennet? Dan is dit de vacature voor jou! Ontwikkelen van innovatie applicaties met behulp van Angular 6 & Java; Overleggen en samenwerken met architecten en Product Owners; Werken binnen een multidisciplinair Scrumteam met betrekking tot analyse, design en ontwikkeling; Samenwerken en ondersteunen van testers in het proces van automatische regressietesten. Functie-eisen Afgeronde HBO- opleiding (Technische richting is een pre); Minimaal 2 jaar relevante werkervaring als Fullstack Developer; Een passie voor techniek en programmeren; Technologieën,

Bekijk vacature »

Senior Mobile Developer vacature

Senior Mobile Developer Currently we are specific looking for professionals who speak fluently Dutch on C1 level. Op bijna elke mobiele telefoon in Nederland is wel een app te vinden die door Sogeti is ontwikkeld of waar Sogeti aan mee heeft gewerkt. Wil jij meehelpen met het ontwikkelen van mobiele applicaties voor de top van het Nederlandse bedrijfsleven? Als Senior Mobile Developer ben jij verantwoordelijk voor het implementeren en testen van nieuwe features. Je bent medeverantwoordelijk voor de codebase en moet deze code dus ook goed onderhouden. Doordat je thuis bent in het mobiele landschap kun je gemakkelijk sparren met

Bekijk vacature »

Fullstack Software Developer PHP Symfony Laravel I

Functieomschrijving Ben jij een (Full Stack) PHP Developer en wil je graag een grote rol spelen in een internationale en groeiende organisatie waarin ICT steeds belangrijker wordt? Reageer nu en kom alles te weten! Software ontwikkelen voornamelijk met PHP, Laravel, Symfony, front-end technieken zoals CSS6, HTML5, JavaScript, API's, en MySQL; Jij hebt de touwtjes in handen, vind je het verstandiger om met andere technieken of tooling bepaalde producten te bouwen? Overtuig dan jouw manager 'and done is done'. Dit maakt jouw job innovatief en ondernemend. Je bent zelf degene die de koers bepaalt voor de techniek en hebt in de

Bekijk vacature »

BI Ontwikkelaar

Ben jij gek op het verzamelen en analyseren van informatie? En wil je met deze passie graag zorgorganisaties meer inzicht verschaffen? Lees dan snel verder. Jouw baan Als BI ontwikkelaar Datawarehouse help je zorgorganisaties bij het inzichtelijk maken en grafisch presenteren van hun data. De ene dag werk je aan rapportages en kubussen, een dag later spreek je af met je collega’s om je in een ingewikkeld zorgproces te verdiepen. Je verwerkt informatiewensen samen met onze ontwikkelaars in de software. Afwisselend en uitdagend, want je werkt aan meerdere projecten tegelijk. Wat voor projecten? Dat stemmen we zoveel mogelijk af op

Bekijk vacature »

.NET Developer C# Junior / Medior Familiebedrijf L

Functieomschrijving Wil jij aan de slag als .NET software ontwikkelaar binnen een groeiende organisatie en je bezig houden met het herstructureren van het platform? Reageer dan snel! Je richt je op het herstructureren van het platform; Softwareontwikkeling middels C# .NET en soms front-end; Je staat in contact met verschillende opdrachtgevers om de klantwensen te bespreken en deze vervolgens te ontwikkelen; Verbeteren van bedrijfsprocessen; Implementaties. Functie-eisen Buiten dat je een enthousiaste ontwikkelaar bent breng je het volgende mee; Je hebt minimaal een afgeronde MBO 4 opleiding; Je hebt kennis van C# .NET; Je weet hoe het is om te werken met

Bekijk vacature »

Senior C++ Developer 3D Thuiswerken

Functieomschrijving Wil jij als ervaren Software Developer met C++ werken bij een high-tech ingenieursbureau in Rotterdam? Dit high-tech ingenieursbureau maakt een applicatie waardoor hele topografische kaarten worden opgebouwd. Deze applicatie wordt gebruikt door de grootste organisaties van Nederland, waaronder de top 10 gemeentes van dit land! Wil jij meer weten? Lees dan snel verder! In C++ ontwikkelen van en werken aan innovatieve ruimtelijke ordening applicatie; Uitvoeren van technische implementaties bij klanten op locatie; Samenwerken in een dynamisch Agile team; Werken aan innovatie en kennisdeling. Functie-eisen Minimaal HBO of WO werk- en denkniveau; Je hebt minimaal 2 jaar ervaring als Developer

Bekijk vacature »

Medior PHP Developer

As a PHP Developer at Coolblue, you ensure that our webshops are bizarre fast and super tight. How do I become a PHP Developer at Coolblue? As a Medior PHP Developer you work together with other development teams to make our webshop work as optimally as possible and to make our customers happy. Although you are a PHP Developer, you are not averse to a little C # or Javascript. Want to become an PHP Developer at Coolblue? Else will explain how to do that. You enjoy doing this Writing PHP code, but can also find your way in C

Bekijk vacature »

C# Developer /SaaS applicaties/MVC/ SQL/ 4.000 eur

Functieomschrijving Ben jij een .NET (C#) Developer wil werken in een IT-minded organisatie? Heb je kennis van MVC en SQL? Wil jij werken aan in-house ontwikkelde applicaties? Houd jij de nieuwste technieken in de gaten om het ontwikkelproces beter te laten verlopen? Lees dan snel verder! Nieuwbouw, onderhoud en bugfixing van de applicaties; Het produceren van code met een hoge kwaliteit; Hulp bieden aan jouw collega's met verschillende (complexe) technische kwesties; Kwaliteitsmonitoring van het gehele project, incl. de opgeleverde wijzigingen; Het waarnemen van verbetermogelijkheden en deze op de planning zetten. Functie-eisen Uitgebreide werkervaring met C#; Kennis van MVC en SQL;

Bekijk vacature »
Jasper DS

Jasper DS

08/02/2013 16:43:30
Quote Anchor link
Hallo,

eerst en vooral sorry voor de slecht titel maar ik heb nog geen idee hoe ik het beestje wil noemen.

Situatie zit zo: ik heb een config.yml file die ik inlees met de Symfony Yaml parser. Van die parser krijg ik een array terug. Nu wil ik die array "herschrijven" (lees de vorm veranderen). Ik heb hier een kleine classe voor geschreven maar ik vroeg me af, is dit wel deftig, kan het niet beter?

config.yml
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
db:
    class: \PDO
    host: localhost
    user: root
    password: test123
    db: databank1
DBstorage:
    class: \Jframe\Storage\PDOStorage
    db: test


Ik heb mijn .yml bestand in deze structuur geschreven omdat dat lekker duidelijk is.

parser
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

require '../vendor/autoload.php';

use Symfony\Component\Yaml\Parser;



class configParser
{
    public $parameterBag = array();

    public function parseArray($values)
    {

        foreach($values as $key => $value)
        {

            foreach($value as $blahkey => $blah)
            {

                $this->setParam($key.'.'.$blahkey,$blah);
            }
        }
    }


    public function setParam($key, $value)
    {

        $this->parameterBag[$key] = $value;
    }


    public function getParam($key)
    {

        if(array_key_exists($key, $this->parameterBag))
        {

            return $this->parameterBag[$key];
        }

        else
        {
            throw new exception('Key not found');
        }

    }


    // enkel voor testen
    public function dump()
    {

        var_dump($this->parameterBag);
    }
    
}




$yaml = new Parser();

$parser = new configParser();

$values = $yaml->parse(file_get_contents('../app/config/config.yml'));

$parser->parseArray($values);
// $parser->dump();
echo $parser->getParam('db.class'); // \PDO
echo $parser->getParam('db.user'); // \root
echo $parser->getParam('DBstorage.class'); // \Jframe\Storage\PDOStorage
?>


Nadeel: deze klasse kan maar 2 niveaus aan, indien ik in config.yml nog één niveau dieper ga zit ik terug met een array als value.
Gewijzigd op 08/02/2013 16:44:00 door Jasper DS
 
PHP hulp

PHP hulp

21/09/2020 02:32:19
 
Kevin van Leeuwen

Kevin van Leeuwen

08/02/2013 16:51:50
Quote Anchor link
Op zich netjes gedaan maar je zou ook eigenlijk arrays kunnen mergen als je de values overschrijd bijvoorbeeld, hiermee bedoel ik dat je een method maakt die een config maakt en als ie bestaat dan overschrijd hij hem en anders voegt hij hem toe.
 
Jasper DS

Jasper DS

08/02/2013 17:07:12
Quote Anchor link
Class 'Jframe\Controller\FrontController' not found Woops verkeerde topic.

@Kevin, ik denk niet dat ik de arrays wil mergen. Alle keys moeten samen en hebben één value (string, int boolean maar geen array).

Stel nu dat ik dan ergens mijn dbuser nodig heb doe ik $config->get('db.user')
Gewijzigd op 08/02/2013 17:10:02 door Jasper DS
 
Erwin H

Erwin H

08/02/2013 17:15:06
Quote Anchor link
Als je meer niveau's wilt gaan (zonder dat vast te leggen) dan is denk ik de beste manier om het met een recursieve functie op te lossen. Als voorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
function parseArray( $input, $currkey = '' ){
  foreach( $input as $key => $value ){
    if ( is_array( $value ) ){
      $this->parseArray( $value, $currkey.'.'.$key );
    }
else {
      //process
    }
  }
}

?>

Eerste aanroep is dan zonder currKey, want die is op dat moment nog leeg.
 
Wouter J

Wouter J

08/02/2013 17:17:30
Quote Anchor link
Het lijkt me handiger om de manier van ophalen te veranderen, dan de manier van invoegen.
 
Jasper DS

Jasper DS

08/02/2013 17:19:54
Quote Anchor link
@Erwin, oke mooi! Dat lijkt mij al een goede uitbreiding. :-)

@Wouter, jij bedoelt dat ik mijn .yml file anders moet opstellen toch? Ik vind dit wel een erg duidelijke en makkelijke oplossing qua configuratie? Ik heb bij Symfony liggen zoeken maar daar worden er meer als 6 klassen gebruikt waardoor ik de lijn kwijt was... :p
 
Wouter J

Wouter J

08/02/2013 17:22:08
Quote Anchor link
@Jasper, nee ik bedoel dat je Parser::getParam() moet aanpassen zodat hij de punten omzet in het uitlezen van een array.
 
Jasper DS

Jasper DS

08/02/2013 17:24:28
Quote Anchor link
Oke Wouter ik ben mee. Ik geloof dat je bedoelt dat $parameterBag gewoon de array bevat die de yaml parser binnensteekt. Indien ik dan $parser->get('db.class') aanroep moet mijn script het volgende doen: $this->parameterBag['db']['class']?
 
Wouter J

Wouter J

08/02/2013 17:46:39
Quote Anchor link
Ja, hoe ik het zou doen: https://gist.github.com/WouterJ/4740229

Deze maakt gebruik van de Symfony2.3 PropertyAccess component. Hierdoor heb je een enorm flexibele ParameterAccessor klasse, die zowel arrays als objects makkelijk kan uitlezen doormiddel van de '.'. Wat hij allemaal kan zie je in de unit test. Mocht je meer willen weten over de PropertyAccess component, de documentatie is al klaar maar nog niet online: https://github.com/WouterJ/symfony-docs/blob/8480e77fd15a9d93141e49fb155808bb7ff0c98d/components/property_access.rst
 
Jasper DS

Jasper DS

08/02/2013 17:50:12
Quote Anchor link
@Wouter, wat denk je van mijn class?

config.yml
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
db:
    class: \PDO
    host: localhost
    user: root
    password:
        hallo: jasper
        daag: desmet
    db: databank1
DBstorage:
    class: \Jframe\Storage\PDOStorage
    db: test



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

require '../vendor/autoload.php';

use Symfony\Component\Yaml\Parser;

// use Jframe\Controller\FrontController;

$fc = new Jframe\Controller\FrontController();


class configParser
{
    public $parameterBag = array();

    public function setParamBag(array $params)
    {

        $this->parameterBag = $params;
    }


    public function getParam($key)
    {

        $keys = explode(".", $key);

        //$key = implode('][', $keys);

        $array = $this->parameterBag;

        foreach($keys as $key)
        {

            $array = $array[$key];
        }


        return $array;    
    }


    // enkel voor testen
    public function dump()
    {

        var_dump($this->parameterBag);
    }
    
}




$yaml = new Parser();

$parser = new configParser();

$values = $yaml->parse(file_get_contents('../app/config/config.yml'));

$parser->setParamBag($values);

// $parser->parseArray($values);
//$parser->dump();

echo $parser->getParam('db.class') . '<br/>'; // \PDO
echo $parser->getParam('db.user') . '<br/>'; // \root
echo $parser->getParam('DBstorage.class') . '<br/>'; // \Jframe\Storage\PDOStorage
echo $parser->getParam('db.password.hallo') . '<br/>'; // jasper

?>
 
Wouter J

Wouter J

08/02/2013 17:54:49
Quote Anchor link
Jasper, het kan. Maar nu zit je dus wel vast aan het feit dat je een array krijgt, maar het is wel wat simpeler. Dus je moet je afvragen of je deze klasse ooit nog eens ergens anders kan gebruiken waarbij je een object hebt, anders zou ik gewoon dat doen.

Zorg wel even dat je je aan de standaarden houdt (het liefst PSR standaarden) en dus je klassenamen met een hoofdletter laat beginnen.
 
Jasper DS

Jasper DS

08/02/2013 18:06:06
Quote Anchor link
Ik heb deze class geschreven voor mijn DI-container. Zodat ik makkelijk vanop elke plaats aan mijn config bestand geraak. Dus moet deze klasse ooit een object lezen? Ik heb eens goed nagedacht maar ik kan niets verzinnen...

Standaarden komen in orde, dit is nog maar een test.php bestand :-)
Gewijzigd op 08/02/2013 18:06:18 door Jasper DS
 
Wouter J

Wouter J

08/02/2013 18:09:28
Quote Anchor link
Ik kan ook zo snel niet iets vinden, dus kun je jouwe gebruiken :)

Quote:
Standaarden komen in orde, dit is nog maar een test.php bestand :-)

Leer het jezelf gewoon aan om altijd via standaarden te scripten.
 
Jasper DS

Jasper DS

08/02/2013 18:13:20
Quote Anchor link
Quote:
Leer het jezelf gewoon aan om altijd via standaarden te scripten.


Oke, duidelijk! Ik zal er op letten. ;-)

Ik twijfel wel nog over de naam van deze klasse. Zoals ik al zei dient het als bridge tussen de DI-container en de .yml of wat ik ook zou kunnen doen is mijn .yml altijd op die manier uitlezen? Ik weet het niet goed...
Gewijzigd op 08/02/2013 18:14:33 door Jasper DS
 



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.