arrayParser (?)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

C# .NET Developer

Functie omschrijving C# .NET Developer gezocht. Ben jij een full stack developer die op zoek is naar een nieuwe uitdaging binnen een leuk snel groeiend bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Developer met ervaring op het gebied van .NET die een organisatie in de regio Bennekom gaat versterken. Jij gaat je binnen dit bedrijf vooral bezighouden met het verbeteren van de functionaliteiten van hun dataplatform. Samen met andere ontwikkelaars denk je mee in oplossingsrichtingen, architectuur en nieuwe technologieën. Bedrijfsprofiel De organisatie waar je voor gaat werken heeft een onafhankelijk dataplatform ontwikkelt voor de agrarische sector.

Bekijk vacature »

Back-end programmeur

Functieomschrijving Heb jij recent jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een erkende werkgever in regio Waalwijk zijn wij op zoek naar een back-end developer. Kennis of ervaring met C# & SQL is een must! Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten; Je bent verantwoordelijk voor de beheer en ontwikkeling van de software; Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je test de software en ontwikkelt deze door; Je brengt de aanpassingssuggesties van klanten in kaart, om ze

Bekijk vacature »

Junior Front end developer Onderwijssoftware

Functie Als Junior front end developer kom jij terecht in een klein, maar hecht team bestaande uit 5 andere developers (waarvan 2 senioren, 2 medior en 1 junior). Met de gezamenlijke missie om “ieder kind te helpen met onze software” wordt er dagelijks gepassioneerd en hard gewerkt aan ons in-house ontwikkeld platform. Deze software is gebaseerd is op AI, machine Learning en wetenschappelijke inzichten. Dagelijks zul jij werken met onze high traffic webapplicatie. We hebben ruim 300.00 gebruikers en meer dan 2 miljard records waar je te maken mee krijgt! Verder zul jij je bezighouden met: – Het ontwikkelen van

Bekijk vacature »

Functioneel applicatiebeheerder - SOP-SYS-SAM

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Functioneel Applicatiebeheerder voor het financiele domein op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je gaat samenwerken in een team van circa 15 functioneel applicatiebeheerders en gaat onderdeel uitmaken van een DevOps team. Met dit team ga je applicaties (laten) ontwikkelen en beheren. Hierbij concentreer je je vooral op

Bekijk vacature »

Full Stack .NET Developer

Dit ga je doen Als developer nieuwe gave features ontwikkelen; Werken met technieken als C#, Angular 12 en Javascript,; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken In een team van 7 professionals ben je als Full Stack .NET Developer verantwoordelijk voor het ontwikkelen van applicaties voor het grootste inhouse product: een applicatie voor alles omtrent hypotheken. De programmeertaal die je hierbij beheerst is C#. Wil je van meerwaarde

Bekijk vacature »

Ervaren PHP ontwikkelaar

Functie Jij als PHP ontwikkelaar komt te werken in een team van 4 andere PHP ontwikkelaars. Je zult je voornamelijk bezig houden met: – Het ontwikkelen van nieuwe features – Doorontwikkelen van de API – Nadenken over de technische infrastructuur – Datakwaliteit Samen met het team ben jij verantwoordelijk voor de verdere ontwikkeling van de software en om de positie als marktleider in Europa te behouden. Ze werken volgens SCRUM in 2 wekelijkse sprints, werken met Jira voor alle tickets en communiceren veel via Slack. Eisen • Minimaal 3 jaar ervaring als back end developer • Je hebt affiniteit met

Bekijk vacature »

Back-end Developer

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe stap? Voor een softwarebedrijf in regio Oosterhout zijn wij op zoek naar een back-end developer met kennis of ervaring met C# en SQL. Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je test de software en ontwikkelt deze door; Je brengt de aanpassingssuggesties van klanten in kaart, om ze vervolgens te analyseren en daarna te concluderen of de aanpassing een verbetering is; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten;

Bekijk vacature »

Laravel / PHP developer

Functie omschrijving Wij zijn op zoek naar een Medior PHP / Laravel Developer voor een IT-consultancy in de omgeving van Hoofddorp! Ben jij op zoek naar een leuke nieuwe uitdaging binnen een veelzijdige werkomgeving? Lees dan snel verder! Binnen dit bedrijf werk je in een ontwikkelteam, waarin je zeer betrokken bent en meedenkt over softwareoplossingen. Binnen dit Team hou je je bezig met het aanpassen, verbeteren en vernieuwen van de logistieke oplossingen. Je zult je bezig houden met de volgende werkzaamheden: Je gaat aan de hand van de wensen van klanten software ontwikkelen; Je bent bij het gehele proces betrokken;

Bekijk vacature »

Frontend Developer

Functieomschrijving Voor de NIPV zijn wij opzoek naar een Frontend Developer. Als Frontend Developer ga jij aan de slag om dashboards te bouwen vanuit het datawarehouse. Dit stelt NIPV in staat om snel en eenvoudig bij correcte bedrijfsvoeringsinformatie te kunnen. Je ontwikkelt dashboards in PowerBI, publiceert en onderhoud die, verzameld en verwerkt feedback in overleg met het ontwikkelteam. Naast dashboards ontwikkel en onderhoud je een datamodel in Excel waarmee adviseurs, controllers en analisten in staat worden gesteld om de gegevens uit de dashboards te raadplegen en anders te filteren of bepaalde gegevens nader te verfijnen, zodat verdiepende vragen kunnen worden

Bekijk vacature »

Senior Fullstack Developer (GOLang, TypeScript)

Bedrijfsomschrijving Our client is one of the large worldwide accounting firms. Functieomschrijving We are looking for a senior (all-round) developer (Project On Demand / Tax Technology) Uses as much as possible technology in support of the development process: Git, Jenkins, Docker, npm, skaffold, helm, etc. We are looking for a real hands-on developer; ie not a team lead or other managerial-style role; Acts with integrity both internally and externally and takes personal responsibility in this respect; Curious about the developments within their field and driven to make a difference with the team; Able to empathize with colleagues and stakeholders and

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 »

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 »

C# Developer

Dit ga je doen De requirements in kaart brengen van de klant; Implementeren van functionele en technische specificaties bij opdrachtgevers; Oplossen van bugs; Meewerken aan maatwerksoftware voor nieuwe opdrachtgevers; Het testen en uitleveren van nieuwe functionaliteiten naar de acceptatie en productieomgeving De database ontwikkelen en onderhouden; Hier ga je werken Onze klant is gevestigd in het westen van Nederland en is gespecialiseerd in het ontwikkelen van software voor de levensmiddelen industrie. De software die het team maakt optimaliseert voornamelijk de administratieve processen, maakt deze meetbaar en zorgt ervoor dat de data zo goed mogelijk gebruikt kan worden. Binnen een van

Bekijk vacature »

Medior/senior front end developer React Sportsoftw

Functie Voor deze functie ben ik op zoek naar een enthousiaste front end developer die communicatief vaardig is. Jij wordt onderdeel van een enthousiast jong team dat werkt aan grote websites. Binnen jouw rol ben jij diegene die de vertaling maakt van design naar functionele code en zorg jij voor goede experience op meerdere platformen. Dit doe je natuurlijk door gebruik te maken van onze stack; Javascript, HTML, CSS en React. Daarnaast wordt er gebruik gemaakt van Webcomponents en verschillende authenticatie tools. Doordat er hier gestreefd wordt naar de beste gebruikerservaringen, wordt het product constant doorontwikkeld. Hierdoor blijven ze voor

Bekijk vacature »

.Net ontwikkelaar - Het schoolsysteem verbeteren!

Bedrijfsomschrijving Onze klant is een prettige en kleinschalige organisatie waar hard gewerkt wordt om het onderwijs te verbeteren. Daarom werken ze aan complexe om administratieve, financiële en facilitaire processen te versnellen en te verbeteren. Dit doen ze vanuit een platte organisatie voor klanten die door geheel Nederland verspreid zitten, hier horen vanzelfsprekend een aantal aansprekende HBO scholen en universiteiten toe. Functieomschrijving Je komt terecht in een organisatie waar op dit moment 2 scrumteams werken. Jij zal als .Net developer binnen 1 van deze scrumteams functioneren, iedereen binnen dit team heeft zijn/haar eigen expertise waardoor er met verschillende invalshoeken aan een

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

19/07/2024 18:04:17
 
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.