session manager, kluts kwijt

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Front End Ontwikkelaar (React)

In het kort Als front end developer ga je aan de slag met maatwerkprojecten voor onze klanten. Denk bijvoorbeeld aan het toevoegen van een machine aan een database of het corrigeren van formulieren voor ingestuurde orders. Voorbeeld van zo’n project is Smart Link. De projecten waar je op ingezet kunt worden liggen binnen het technische domein waar jij als front end developer een grote rol speelt om samen met je back end collega’s de juiste oplossingen te leveren. please note that this particular role requires fluent Dutch language skills. Dit vind je leuk om te doen Het omzetten van designs

Bekijk vacature »

Medior PHP Developer

Functie omschrijving Ben jij een getalenteerde PHP Developer en aan de slag in een gemotiveerd team? Lees dan snel verder! Voor onze opdrachtgever in de omgeving van Valkenswaard zijn we op zoek naar een ervaren PHP developer. Jij gaat hier zorg dragen voor het optimaliseren en up-to-date houden van de bestaande applicaties. Je werkt verder aan de applicaties die jij verder ontwikkelt. Dit doe je voornamelijk met PHP en MySQL. Verder ga je je bezig houden met: Het uitbouwen van het E-commerce software platform. Deelnemen aan overleggen met het team. Het ondersteunen van jouw team developers (3 man) en helpen

Bekijk vacature »

Applicatie ontwikkelaar

Functie omschrijving Zelfstandige applicatie ontwikkelaar gezocht voor familiair bedrijf in omgeving Capelle ad Ijssel Ben jij op zoek naar een nieuwe uitdaging en zoek jij een informele werkgever waar je zelfstandig kunt werken binnen een leuk IT team, lees dan snel verder want wie weet zijn wij op zoek naar jou! Een deel van jouw werkzaamheden: Onderhouden en ontwikkelen van de IT systemen; Opzetten van Azure Cloud systemen, denk aan interfaces, hardware op de Cloud, webportalen of BI functies; Werken aan scripts binnen verschillende software applicaties, denk aan ERP en CAD; Ontwikkelen en implementeren van MS PowerApps en Power BI.

Bekijk vacature »

Senior .NET Ontwikkelaar

In het kort Als Senior .NET ontwikkelaar ga je binnen onze business unit Transport en Logistiek aan de slag met 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 (denk aan ECT) 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

Bekijk vacature »

Traineeship Front-end developer (WO, 0 tot 3 jaar

Functie Zoals beschreven ga je vanaf start aan de slag bij een passende opdrachtgever, hierbij kijken ze echt naar jouw wensen, kennis/ervaring maar ook de reisafstand. Momenteel hebben ze meerdere klanten waarbij ze groepen hebben opgezet wat maakt dat er diverse uitdagende kansen liggen. Naast het werken bij de opdrachtgever, en het volgen van de masterclasses, zul je regelmatig met de andere trainees in contact zijn. Niet alleen op professioneel vlak maar juist ook bij de borrels en kwartaaluitjes! Kortom; een jaar lang hard aan jezelf werken in combinatie met gezelligheid en plezier. Spreek dit jou aan? Dan komen we

Bekijk vacature »

Embedded Developer C++

Functie omschrijving Ben jij op zoek naar een leuke uitdaging als Embedded Developer, zoek dan niet verder! Voor een leuke opdrachtgever in omgeving Rotterdam zijn wij op zoek naar een Embedded Developer die graag met Embedded Devices werkt. Je zult verantwoordelijk worden voor het ontwikkelen en onderhouden van diverse producten. Jouw specialisatie ligt op het vlak van software, hardware en back-end. Dit bedrijf is gespecialiseerd in het ontwerpen van software voor een unieke industrie. Wil jij betrokken worden bij een proces dat loopt van ontwikkeling tot installatie? Waarbij je bezig zult zijn met perfecte systemen die geleverd worden aan binnen

Bekijk vacature »

Integratie expert - Java Developer

Dit ga je doen Nieuw koppelingen ontwerpen, ontwikkelen en implementeren; Je schakelt met de klanten om hen zo goed mogelijk van dienst te zijn. Strategisch kijken naar nieuwe mogelijkheden op bestaande of nieuwe koppelingen zo effectief mogelijk te realiseren; Je bestaande toolset afwegen tegen nieuwe mogelijkheden om integratiedoelen steeds effectiever en/of effcienter te bewerkstelligen; Bestaande software koppelingen beheren, dit zijn koppelingen met zowel interne als externe systemen; Overleg met zowel directe collega's als met stakeholders om nieuwe integratieplannen concreet te maken; Je kunt de junioren meenemen op sleeptouw. Hier ga je werken Onze klant is op zoek naar een ervaren

Bekijk vacature »

Junior Low-code ontwikkelaar gezocht omgeving Arnh

Bedrijfsomschrijving Wij zijn een dynamisch IT-bedrijf dat zich richt op het stroomlijnen van bedrijfsprocessen en het creëren van ondersteunende applicaties. Onze kracht ligt in het combineren van zakelijk inzicht met IT-expertise via gestroomlijnde procesontwerpen en wendbare applicatieontwikkeling met behulp van Low-code technologieën. Als jonge professional krijg je de kans om samen te werken met een team van 15 deskundige collega's, verspreid over nationale en internationale locaties. We bieden je een leerzame omgeving waar je je vaardigheden kunt ontwikkelen en groeien in je rol als Low-code ontwikkelaar. Word jij onze nieuwe Junior Low-code Ontwikkelaar (OutSystems)? Versterk ons team en draag bij

Bekijk vacature »

Fullstack Software Developer

Bedrijfsomschrijving Functieomschrijving Java ontwerpen, bouwen en testen (T-shaped). Als senior ontwikkelaar ben je bekend in zowel de back-end als de frontend van een applicatie. Angular, Continious Delivery / Integration. Een ervaren iemand die de leiding kan nemen, een weg vindt in nieuwe situaties, en in oude applicaties. Initiatiefrijk, bekend met de (technische) omgevingen die we bij duo gebruiken, niet te beroerd om collega’s te helpen. Als senior programmeur in staat om op te treden als lead programmeur. Ondersteunt de testers bij de testautomatisering en minder ervaren programmeurs bij dagelijks werkzaamheden. Dit laatste met name op het gebied van Angular. Achtergrond

Bekijk vacature »

Medior Mobile Developer iOS Amsterdam

Functie What will you be doing as Mobile Developer? As an iOS app developer you will work in a multidisciplinary team of app developers, web developers and designers. You will work on world-class apps that will be used by thousands of people. There is a lot of room for self-development on a technical and personal level. Together with the rest of the team you develop in the newest techniques and you go for the best quality. We work with Kotlin Multiplatform Mobile to develop hybrid apps and we guarantee quality with peer reviews, unit testing and we use a CI/CD.

Bekijk vacature »

Freelance JAVA / C# Developer

Functieomschrijving Voor een opdrachtgever in omgeving Zoetermeer 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. 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! 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 »

Software Ontwikkelaar PHP

Functie omschrijving Software Ontwikkelaar PHP gezocht! Wij zijn op zoek naar een ervaren PHP Software Ontwikkelaar om het team van onze opdrachtgever te versterken! De ideale kandidaat zal fungeren als verlengstuk van klanten en complexe technische vraagstukken met enthousiasme benaderen. Naast het werken met de nieuwste technologieën, ben je in staat om aan meerdere projecten tegelijkertijd te werken. Als je deze uitdaging aangaat, werk je nauw samen met front-end developers en draag je bij aan het realiseren van grote veranderingen bij klanten. Het bedrijf zoekt iemand die zichzelf graag uitdaagt en altijd streeft naar het leveren van de beste resultaten.

Bekijk vacature »

Trainee pega developer

Wil jij een mooie stap maken in jouw carrière? Mooi! Bij De Mandemakers Groep haal je binnen 6 maanden je CSA- en CSSA-certificaten, waarna jij aan de slag kan als Pega-developer in ons IT-team. Achter de schermen zorg jij ervoor dat collega’s efficiënt werken en klanten iedere dag beter geholpen worden. Wil jij daaraan bijdragen? En jouw ICT-skills ontwikkelen? Lees dan snel verder en solliciteer vandaag nog als trainee Pega-developer. Wat ga je doen? Als trainee Pega developer leiden wij je op tot gecertificeerd software developer voor het low-code platform PegaSystems. In de training ben je verantwoordelijk voor een te

Bekijk vacature »

Frontend Developer - Leeuwarden

Frontend Developer – Leeuwarden Als Frontend Developer bouw jij mee aan het onderwijs van de toekomst! In een scrum team werken met jonge en enthousiaste collega’s, moderne technieken, ruimte voor eigen ontwikkeling en op een proactieve wijze kunnen meewerken aan innovatie binnen het onderwijs. Magister is het state-of-the-art softwarepakket dat scholen in het voortgezet onderwijs op alle fronten ontzorgt. Van leerlingenadministratie tot het ondersteunen van individuele leerlijnen, van toegang tot digitaal lesmateriaal tot het plannen van het lesrooster. In de Magister app bedient Magister ruim 2,5 miljoen gebruikers waarvan, dagelijks meer dan 600.000 unieke. Hiermee is Magister de absolute marktleider

Bekijk vacature »

Back end developer Onderwijssoftware

Functie Als back 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 hoogwaardige

Bekijk vacature »
Ozzie PHP

Ozzie PHP

02/03/2014 15:48:01
Quote Anchor link
Ik werd vanochtend wakker, en ineens was ik de kluts kwijt. Vorige week dacht ik dat ik het begreep, maar nu weet ik het weer even niet. Is er één iemand hier op het forum die het mij goed kan uitleggen, want ik word er gek van. Het ene moment denk ik het te snappen, en nu ineens dus weer niet.

Waar gaat het over?

Als ik vroeger iets wilde opslaan in de $_SESSION array, dan gebruikte ik daar een "SessionManager" class voor. Als ik iets in de $_SESSION array wilde zetten, dan deed ik dat als volgt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$sm
= $container->get('session_manager');
$sm->set('user', 'Ozzie');
// ergens anders de waarde ophalen:
echo 'hallo ' . $sm->get('user');
?>

Nu werd hier op het forum gezegd dat dit geen flexibele oplossing is. Stel dat ik voortaan mijn session data niet meer op wil slaan in de $_SESSION array maar in de database, dan zou dat met mijn oplossing erg lastig worden.

De betere oplossing was, volgens enkele leden op het forum, deze:

We stoppen de key en value niet meer rechtstreeks in de SessionManager, maar we stoppen ze eerst in een apart Session object. Daarna geven we dat Session object door aan de SessionManager en de SessionManager slaat de data op in de $_SESSION array, of in de database (afhankelijk van het type SessionManager).

Precies hetzelfde voorbeeld als hierboven, maar nu met de opzet die enkele leden hier op het forum aanraden:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$sm
= $container->get('session_manager');
$session = new Session();
$session->setId('user');
$session->setValue('Ozzie');
$sm->update($session);
// ergens anders de waarde ophalen:
$session = $sm->get('user');
echo 'hallo ' . $session->getValue();
?>

Zoals je ziet vergt deze methode meer typwerk. Maar goed, als het een meerwaarde heeft dan valt daar iets voor te zeggen. Alleen mijn vraag is wat deze meerwaarde nu eigenlijk is.

Het idee van mensen die voorstander zijn van deze laatste methode, is dat je enkel door de SessionManager class te wijzigen, je al je sessie data in één keer ergens anders kunt opslaan. Bijvoorbeeld, door in plaats van een SessionManager te gebruiken die alles in de $_SESSION array opslaat, gebruik je een SessionManager die alles in de database opslaat, en voila... alle session data wordt in de database opgeslagen.

Prima, goed idee! Klinkt goed.

Maar nu mijn kritische noot. Waarom zou datzelfde niet op "mijn" manier kunnen? Als je de SessionManager class in het eerste voorbeeld wijzigt door een SessionManager class die de sessie data in een database kan opslaan, dan heb je toch precies hetzelfde effect? (Met een interface dwing je af dat een SessionManager altijd dezelfde methods heeft.)

De Session class in het 2e voorbeeld heeft de volgende methods: getId(), setId(), getValue() en setValue().

Dus een object met 4 methodes enkel om een ID => value paar op te slaan. Waarom? Het enige wat de SessionManager hoeft te weten is: WAT moet ik opslaan (de value) en onder welke ID. Waarom gaan we rondom deze basale informatie dan een aparte class bouwen? Waarom zeggen we niet rechtstreeks tegen de SessionManager, dit is de ID en dit is de value. Waarom moet daar een hele class of container omheen worden gebouwd die we vervolgens doorgeven aan de SessionManager, en waar de SessionManager vervolgens de ID en value weer uithaalt? Waarom niet direct de ID en value aan de SessionManager doorgeven?

Wie kan het mij uitleggen? Ik zie blijkbaar iets over het hoofd, maar ik zou zo graag weten wat...

Wie helpt me uit de brand?
Gewijzigd op 02/03/2014 15:51:31 door Ozzie PHP
 
PHP hulp

PHP hulp

19/05/2024 19:50:49
 
Wouter J

Wouter J

02/03/2014 16:08:06
Quote Anchor link
allereerst zou ik geen setters gebruiken voor id en value. Dat zijn verplichte waarden, geef die dus mee aan de constructor en nog mooier: gebruik een factory: Session::create('user', 'Ozzie')

Waarom een object? Tja, ik gebruik tegenwoordig steeds meer principes van Domain Driven Development. Daarin werk je eigenlijk altijd met objecten (Value Objects of Date Transfer Objects) om data van de ene laag (de usage laag) naar de andere (de implementatie laag) te verplaatsen.
 
Ozzie PHP

Ozzie PHP

02/03/2014 16:25:42
Quote Anchor link
>> allereerst zou ik geen setters gebruiken voor id en value

Oké, maar dat heb exact zo ik overgenomen uit jouw eigen voorbeeld:
http://www.phphulp.nl/php/forum/topic/request-class/88420/4/#635463

>> Waarom een object? Tja, ik gebruik tegenwoordig steeds meer principes van Domain Driven Development. Daarin werk je eigenlijk altijd met objecten (Value Objects of Date Transfer Objects) om data van de ene laag (de usage laag) naar de andere (de implementatie laag) te verplaatsen.

Afgezien van het feit dat jij dan blijkbaar steeds vaker voor een bepaalde implementatie kiest, wat is nu daadwerkelijk in deze situtie de toegevoegde waarde van zo'n object? Het gaat hier simpelweg om een ID => value paar. Is het echt nodig om daar een complete class omheen te bouwen? Als je een array vult met waardes, dan ga toch ook niet van ieder element eerst een object maken, en dat object vervolgens toevoegen aan de array? Waarom in dit geval die extra abstractielaag?

De reden voor de opzet met losse Session objecten was volgens een aantal van jullie dat het meer flexibel zou zijn dan "mijn" opzet, waarbij geen losse Session objecten worden gebruikt. In mijn opzet zou het niet mogelijk zijn, of in ieder geval moeilijker, om te wisselen van opslagmedium. Met mijn variant zou je niet zomaar alle data die je nu in de $_SESSION array opslaat, kunnen opslaan in de database. Dat zou met jouw opzet makkelijker gaan. Dat ben je toch wel met me eens?

Nu is mijn vraag... waarom biedt het gebruik losse objecten meerwaarde? Als ik 2 verschillende SessionManagers heb, 1 voor de database en 1 voor de $_SESSION array, dan kunnen deze beide SessionManagers toch een get method hebben, waarbij de 1e variant de data uit de databse haalt en de 2e variant de data uit de $_SESSION array? In de opzet met losse Session objecten heb je zelfs een aparte update/save method nodig. Als je zonder losse objecten werkt, kun je de data rechtstreeks updaten op het moment dat je de value wijzigt, en heb je dus geen extra update method nodig. Enkel een setValue method die in het eerste geval de data in de database wijzigt en in het 2e geval de data in de $_SESSION array.

Ik ben nu erg benieuwd waar de concrete meerwaarde zit in de opzet met losse Session objecten. Dit was dé manier volgens een aantal van jullie, dus dan lijkt het me ook dat er een essentieel voordeel aan moet zitten. Maar ik zie het (nog) niet.
 
Ozzie PHP

Ozzie PHP

03/03/2014 17:13:12
Quote Anchor link
*BUMP*

Iemand?

Offtopic:

Wouter J op 02/03/2014 16:08:06:
... en nog mooier: gebruik een factory: Session::create('user', 'Ozzie')

Waarom zou je een factory willen gebruiken ipv $session = new Session('user', 'Ozzie')? Dit soort dingen doe je toch altijd via de constructor?
 



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.