session manager, kluts kwijt

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP Developer

Functieomschrijving Wij zijn op zoek naar een PHP Developer met Laravel ervaring! Voor een groeiende werkgever in regio Breda zijn wij op zoek naar een medior PHP developer met Laravel ervaring. Je gaat aan de slag met het ontwikkelen van maatwerk software voor klanten in een specifieke markt. Als PHP developer ben je samen met een gemotiveerd team van 6 collega’s verantwoordelijk voor de ontwikkeling, beheer en het innoveren van informatiesystemen voor klanten in een specifieke branche. Als software developer ondersteun je complexe uitdagingen van klanten. Je brengt hun wensen in kaart en vertaalt deze door naar maatwerk software. Om

Bekijk vacature »

PHP Developer

Zie jij mogelijkheden om onze tooling technisch te verbeteren en uit te bouwen? Over Jobmatix Jobmatix is een innovatieve en internationale speler op het gebied van jobmarketing. Onze jobmarketing automation tool helpt organisaties bij het aantrekken van nieuw talent door vacatures digitaal, geautomatiseerd en op een efficiënte manier te adverteren en onder de aandacht te brengen bij de doelgroep op 25+ jobboards. Volledig performance-based, waarbij organisaties betalen op basis van cost per click of cost per applicant. Maandelijks wordt onze jobmarketing automation tool al gebruikt door vele directe werkgevers, intermediairs en mediabureaus, waaronder Picnic, Rijkswaterstaat, AdverOnline, Schiphol, DPA, Teleperformance en

Bekijk vacature »

.NET Developer

Functie omschrijving In deze functie ga je werken als C# Developer. Jij gaat aan de slag met de volgende taken: Maatwerk software bouwen; Huidige softwareprojecten verder uitbouwen en optimaliseren; Ideeën van de klant omzetten naar handige oplossingen en tools; Bovenstaande doe je middels de Microsoft- stack: C#, ASP.NET en MVC/ Entity Framework. Ben je net afgestudeerd aan een HBO opleiding Informatica, aarzel dan niet om te solliciteren. Dit is namelijk de ideale startersfunctie! Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Boxtel. Het is van oorsprong een familiebedrijf, die gestart zijn met het bouwen van websites. Dit is door

Bekijk vacature »

Full-stack Developer

As a Full-stack developer at KUBUS, you will develop the (web)applications and services of BIMcollab. You will work on both the front- and back-end. As a software company, KUBUS is in a unique position. We build our own products that are used by tens of thousands of users worldwide. Our company is just the right size: big enough to make a real impact in the market, but small enough that as an individual developer you can have an impact and really make a difference. Our development team consists of over 40 developers, testers, scrum masters and product owners, divided over

Bekijk vacature »

C# Developer Research and Development - Delft

Vacature details Vakgebied: Software/IT Opleiding: Medior Werklocatie: Delft Vacature ID: 6307 Introductie C# Developer Research and Development - Delft - Onze klant is één van de meest innovatieve bedrijven in de region van Delft. Op dit moment zijn ze voor het innovatie centrum. In het innovatie centrum wordt gewerkt aan de nieuwste technieken voor navigatie software. R&D / C# / Pattern Recognition / Algorithms / 3d Data / DotNET Functieomschrijving Als C# Developer kom je te werken in een innovatief scrumteam. We ontwikkelen en door ontwikkelen de nieuwste technieken op het gebied van navigatie software. Deze software wordt onder andere

Bekijk vacature »

.Net Front-end Ontwikkelaar

Wij zoeken een .Net Front-end Ontwikkelaar! Omschrijving Kun jij snel schakelen en ben je stressbestendig? Dan zoeken wij jou! Als .Net Front-end Ontwikkelaar help je mee aan de webapplicatie die over de hele wereld door allerlei bedrijven wordt gebruikt. Je werkt daarnaast mee aan nieuwe en verbeterde functionaliteiten en helpt met het oplossen van bugs. Over de opdrachtgever Je komt te werken in een ambitieus team dat zich blijft ontwikkelen. Dit is alle informatie die we nu kunnen delen over de werkplek. Als jij de .Net Front-end Ontwikkelaar bent voor deze job, vertellen we je snel nóg meer. Eisen Heb

Bekijk vacature »

Front-end React developer

Functie Het frontend team bestaat momenteel uit 4 dedicated front-enders en is hard aan het groeien! Ook werken er diverse designers waar je veel mee schakelt. Samen leveren jullie een essentiële bijdrage aan de applicaties die ze voor hun klanten realiseren, jij bent hierin de schakel tussen de eindgebruiker en de slimme backend. Je werkt in het frontend team samen met de backend teams en product owners om te zorgen dat onze applicaties een fijne gebruikerservaring opleveren. Ze werken o.a. met: React, Atomic design, Styled components, JavaScript / TypeScript, NPM, Webpack Blade templates, HTML, SCSS, Git flow. Eisen • HBO

Bekijk vacature »

Low-code developer

Functie omschrijving Heb jij altijd al een training willen volgen in het buitenland? Voor een leuke opdrachtgever in omgeving Alphen ad Rijn zijn wij op zoek naar kandidaten die aan de slag willen als Low Code Developer! Beschik jij over HBO/WO nivo, bij voorkeur Informatica, maar een ander technische opleiding zoals bijv. wiskunde, natuurkunde is ook goed. Heb jij aantoonbare affiniteit met IT en ben jij gedreven, enthousiast, communicatief vaardig en klantgericht? Lees dan snel verder! Je wordt getraind tot een volwaardig Low Code Developer, het traject ziet er als volgt uit: Start 1e week januari, opleiding van 3 weken

Bekijk vacature »

Medior/senior Front-end developer

Functie Je maakt deel uit van een DevOps Scrum team en werkt samen met back-end developers, test-engineers, interaction designers en een projectmanager. Er zijn verschillende groepen Scrum teams. Een roadmap team is jouw ‘’thuisbasis’’, daar wordt gewerkt aan doorontwikkeling van bestaande omgevingen voor een aantal klanten. Hiernaast zijn er projectteams waar nieuwe omgevingen worden gebouwd, of grote complexe wijzigingen worden doorgevoerd op bestaande omgevingen. Je kunt (afhankelijk van jouw wensen en doelen) dus afwisselend werken in beide teams. Hiernaast participeer je in het Chapter Front-end development waar gezamenlijk kennis en ervaring wordt gedeeld. Als Front-end developer is het jouw doel

Bekijk vacature »

Social Media Specialist

Social Media Specialist locatie: Rotterdam (Zuid Holland) Wij zoeken op korte termijn een nieuwe collega, een social media specialist/ adviseur sociale media (24 uur), voor ons sprankelende team Communicatie van CJG Rijnmond. Onze focus ligt op het informeren en binden van onze in- en externe klanten en stakeholders en het versterken van onze naamsbekendheid en zichtbaarheid. Dat doen we in nauwe samenwerking met elkaar. Over de functie Ons team bestaat uit 7 communicatieprofessionals met ieder een eigen expertise. Als lid van het online team ben je verantwoordelijk voor het ontwikkelen, uitvoeren en analyseren van onze socialemediastrategie. Ook stel je campagnes

Bekijk vacature »

Software developer - C Sharp

Functie omschrijving Voor een opdrachtgever, met een prachtig kantoor in omgeving Wateringen zijn wij op zoek naar een software ontwikkelaar die graag werkt met C#, JAVA of Oracle. Heb jij interesse in het programmeren en ontwikkelen van software? En heb jij enige ervaring met Oracle databases en PL/SQL? Als software developer werk je met je collega's samen in een leuk en informeel team aan het (her)ontwerpen van bedrijfssystemen. Je houdt je bezig met het ontwikkelen van REST API's en je onderhoudt applicaties in Oracle PL/SQL en APEX. Vind jij het leuk om in een Agile/Scrum omgeving te werken? Wil jij

Bekijk vacature »

Medior Front end developer React

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 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 op de

Bekijk vacature »

App Developer

Samen werken aan een gezonder Nederland en toekomstbestendige zorg voor iedereen. Dat is de impact die jij kan hebben als App Developer bij VGZ. Wil jij een bijdrage leveren aan een maatschappij waarin iedereen zich thuis voelt? Bekijk dan de vacature. Uit onderzoek van Computable is VGZ verkozen tot ‘beste niet-ICT werkgever voor ICT’ers van Nederland’ Hoe ook jij het verschil maakt Als App developer werk jij aan het belangrijkste communicatiekanaal van VGZ, namelijk de App! Als App developer bij VGZ maak je onderdeel uit van een van onze App-teams. Met een goede mix van kennis en ervaring zet je

Bekijk vacature »

Software Programmeur PHP

Functie Wij zijn op zoek naar een PHP programmeur voor een leuke opdrachtgever in omgeving Alblasserdam. Heb jij altijd al willen werken bij een bedrijf dat veilige netwerkverbindingen levert door middel van veilige oplossingen? Lees dan snel verder. 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 het gebied van geleverde software en webapplicaties. Tevens

Bekijk vacature »

.NET developer

Functie Als developer heb jij de keuze om aan te sluiten bij het team (13 developers) die op locatie projectmatig bij klanten werkt. Wanneer jij liever intern bij de werkgever werkt is er ook alle ruimte voor jou in het interne team (8 developers) van dit bedrijf. Je werkt samen aan verschillende projecten bij of voor de klant. Het project wordt aangeleverd door sales aan de project manager. Die maakt samen met de Resourcer een planning en op basis daarvan wordt uit het development team een “projectgroep” opgesteld. Hoeveel en welke projecten jij wilt oppakken gebeurt geheel in samenspraak met

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

08/05/2024 09:57:40
 
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.