[oop] valid state

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Systeem- en netwerkbeheerder

NSCR zoekt een systeem- netwerkbeheerder (24 tot 40 uur per week) Ben jij op zoek naar een baan in een levendig instituut waarin je de steun en toeverlaat bent van onderzoekers en andere gebruikers op het vlak van systeem en netwerkbeheer? Dan maken we graag kennis met jou. Wie zijn wij? Het Nederlands Studiecentrum Criminaliteit en Rechtshandhaving (NSCR) is een nationaal onderzoeksinstituut dat zich toelegt op fundamenteel wetenschappelijk onderzoek op het gebied van criminaliteit en rechtshandhaving. Het maakt deel uit van de institutenorganisatie (NWO-I) van de Nederlandse Organisatie voor Wetenschappelijk Onderzoek (NWO). Het NSCR is in Amsterdam gevestigd in een

Bekijk vacature »

Database Developer

Bedrijfsomschrijving De organisatie is een gerenommeerde HR Cloud Solutions provider met miljoenen gebruikers. Hun platformen helpen klanten om Human Capital Management (HCM) ambities waar te maken en bieden payroll oplossingen voor de verloning van ongeveer 25% van alle Nederlandse werknemers. Als Database Developer kom je te werken binnen het Integratie API team. Binnen het domein is een Database opgezet volgens het EAV model, echter is het lastig om hier data uit te halen. Het doel van het team is dan ook, om efficiënt data uit de Database te halen en dit zo begrijpelijk mogelijk te presenteren aan de andere team.

Bekijk vacature »

Full Stack Developer

Ben jij de full stack developer die de Zorg beter maakt? Zet dan je kwaliteiten in voor CareConnections, een succesvolle onderneming met inmiddels negentien medewerkers. Je collega's zijn jong en ambitieus met een aantal ervaren ontwikkelaars die jou naar een hoger niveau kunnen helpen. De cultuur is informeel en alles is bespreekbaar. Wil je thuiswerken? Dat mag. Wil je tussen de middag even sporten? Lekker doen! Alles gaat op basis van vertrouwen. Als ontspanning een massage na het vele uren ontwikkelen? Die plan je in bij de masseur om de hoek. Bij ons staat de klant op nummer 1, jouw

Bekijk vacature »

C# .NET Developer

Bedrijfsomschrijving Als .NET Developer kom je te werken in de regio van Lelystad bij een organisatie die met toonaangevende klanten uit heel Nederland samen werkt. De producten en diensten van de organisatie bereiken miljoenen Nederlanders. Hierbij komt een grote hoeveelheid informatie kijken en deze moet discreet en veilig verwerkt worden. De processen die hierbij horen worden door het IT team vormgegeven. De organisatie heeft ook een adviserende rol, omdat het de klantprocessen raakt en de markt constant in beweging is. Je werkt voor toonaangevende klanten, waaronder o.a. grote financiële dienstverleners, overheidsorganisaties, verzekeringsmaatschappijen en telecombedrijven. De organisatie wordt gekenmerkt als een

Bekijk vacature »

.NET developer

Wil jij samen met gemotiveerde en slimme collega’s bouwen aan ons geavanceerde landschap in Azure? En vind je het ook nog eens leuk om jouw kennis te delen met junior- en medior devs? Dan heb je wellicht interesse in de positie van: Senior fullstack .NET developer voor ons kantoor in Alkmaar Over de positie: Bij SnelStart werken we in een AGILE-structuur om de productie meer focus en impact te geven. Met je collega’s kom je tot de beste resultaten door onderlinge discussie, goede refinement sessies, reviews en écht teamwork. Je hebt de vrijheid om de dingen te doen zoals jij

Bekijk vacature »

Fullstack .Net (Core)/C# Developer zet zich in voo

Voor een organisatie gespecialiseerd in het ontwikkelen van software voor dierenartspraktijken ben ik op zoek naar Fullstack .Net (Core)/ C# Developers. De organisatie, 15 jaar geleden opgericht heeft een internationale klantenkring met meer dan 10.000 praktijken. Er hangt een nuchtere en familiaire sfeer, waar je je snel in thuis zal voelen. In 3 Scrum teams wordt er gewerkt aan her/doorontwikkeling van de dierenartspraktijksoftware en aanverwante tools. Je focus ligt bij het design, programmeren, unit testen en deployen van van nieuwe functionaliteiten. Waarbij je voor 80% bezig bent in de backend en 20% in de frontend. Wat moet je kunnen? -

Bekijk vacature »

Erv.Software Ontwikkelaar voor slimme oplossingen

Dutch is mandatory for this position. Ervaren Software Ontwikkelaar voor slimme oplossingen binnen de Transport & Logistiek (C#.NET/Azure/65K/R’dam) Jij gaat samen met collega’s (complexe) logistieke vraagstukken oppakken, met als doel slimme software oplossingen te bedenken en te ontwikkelen. Een maaltijd box leverancier van Nederland was op zoek naar een oplossing om hun logistieke processen te optimaliseren en de klantervaring te verbeteren. Hiervoor is een app gebouwd die het hele distributie proces inzichtelijk maakt van magazijn tot bezorger, en van klantenservice tot aan klant. Je kan zien waar welke bezorger zich bevind, maar ook welke tempratuur de producten op dat moment

Bekijk vacature »

Python UI developer using Django framework

Python UI developer using Django framework hello energy, Rotterdam Python UI developer using Django framework Ready for the next step in your development career? Want to work for an impact-driven scale-up? Come join our development team as a Python UI Developer! Leading real estate companies use hello energy to collect sustainability data and connect & engage all stakeholders on their road to net zero carbon. Full-time · Rotterdam, the Netherlands hello energy hello energy is the leading SaaS scale-up that helps make real estate sustainable. We do so by collecting all kinds of data, connecting people, and changing people’s behavior

Bekijk vacature »

Senior C# Developer

UPS Nederland zoekt een Senior Developer C# * Remote werken mogelijk Wil jij werken aan complexe IT-systemen bij een van de grootste logistieke werkgevers ter wereld? Als ontwikkelaar bij UPS werk je aan opkomende technologieën en DevOps processen om ervoor te zorgen dat onze logistieke processen zo soepel en efficiënt mogelijk verlopen. Dit ga je doen Je bent betrokken bij alle facetten van applicatieontwikkeling. Je bent betrokken bij alle facetten van applicatieontwikkeling: van ontwerpen en bouwen tot testen en implementeren. Je levert ontwerpen die passen bij de onderliggende frameworks en concepten, bouwt efficiënte en testbare code, identificeert en integreert modulaire

Bekijk vacature »

Fullstack Developer /.NET Core

Bedrijfsomschrijving Als Fullstack Developer kom je te werken in de regio Almere bij een organisatie, dat als internationale marktleider opereert op het gebied van detailhandel. Vanuit ruim tienduizend locaties verkopen zij hun producten aan de klanten. Om diverse data en bedrijfsprocessen van HR, CRM tot inkoop overzichtelijk in beeld te hebben heeft de organisatie een bedrijf kritische applicatie ontwikkeld. Ter versterking van het development team, bestaand uit 6 ontwikkelaars, is de organisatie op zoek naar een ervaren Fullstack Developer. Als Full stack Developer zal je bezighouden met zowel het development als het onderhoud van de applicatie. Jouw werkzaamheden zullen 80%

Bekijk vacature »

.NET Developer / C#

Bedrijfsomschrijving werken bij een organisatie waar je met het volgende in aanraking komt: High-intensity dataverkeer, meer dan 2,7 miljard berichten per jaar; Development aan .NET applicaties die maandelijks miljoenen euro's verwerken; Salaris als developer tot bijna 70.000 euro op jaarbasis; Geen partij in de omgeving van Tilburg die zo'n complex .NET applicatielandschap heeft; Werken aan meer dan 50 diensten, verdeeld over 10 Scrum teams; Focus op o.a.: C# en ASP.NET in een Agile organisatie; Elk kwartaal een week lang verplicht met nieuwe technieken/tooling werken; Meer dan 40 ervaren .NET ontwikkelaars als collega's; Mogelijkheid om 32 of 36 uur te gaan

Bekijk vacature »

Lead Full Stack Developer / Mobile Apps / C# / Rea

Bedrijfsomschrijving Als Full Stack developer kom je te werken bij een organisatie in regio Ede die gespecialiseerd is in het ontwikkelen en implementeren van software. Zo hebben ze een eigen ontwikkelde applicaties in de markt gezet voor de agrarische sector die internationaal zeer succesvol is en waar grote vraag naar is. Door deze software worden klanten op een slimme manier ondersteund bij voorraden, administratie, het maken van planningen en nog veel meer. De laatste tijd neemt de vraag naar mobile applicaties toe die klanten real time van de correcte informatie voorzien en het mogelijk maken om onder andere data registraties

Bekijk vacature »

IT-traineeship junior software developer

Zoek jij een stevige uitdaging en de mogelijkheid om veel nieuwe dingen te leren in een dynamisch vakgebied? Doe mee aan ons IT Professional Program en ontwikkel jezelf tot software engineer! Je begint met een opleidingstraject van ongeveer 4 maanden. Hierin ga je aan de slag met verschillende technieken die je op conceptueel niveau leert te overzien en interpreteren. Onderwerpen die aan bod komen zijn o.a. programmeren (Java/C#/Python), Object Oriëntatie, Databases, Webservices & webtechnologieën, Domain Driven Design en Continuous Integration/Continuous Delivery. Sommige van deze onderdelen sluit je af met een examen en bijbehorende certificering. Het opleidingstraject zelf sluit je af

Bekijk vacature »

IT-Traineeship junior software programmeur

Zoek jij een stevige uitdaging en de mogelijkheid om veel nieuwe dingen te leren in een dynamisch vakgebied? Doe mee aan ons IT Professional Program en ontwikkel jezelf tot software engineer! Je begint met een opleidingstraject van ongeveer 4 maanden. Hierin ga je aan de slag met verschillende technieken die je op conceptueel niveau leert te overzien en interpreteren. Onderwerpen die aan bod komen zijn o.a. programmeren (Java/C#/Python), Object Oriëntatie, Databases, Webservices & webtechnologieën, Domain Driven Design en Continuous Integration/Continuous Delivery. Sommige van deze onderdelen sluit je af met een examen en bijbehorende certificering. Het opleidingstraject zelf sluit je af

Bekijk vacature »

Medior/Senior PHP Developer / Marketing / Impact

Bedrijfsomschrijving Deze informele organisatie brengt campagnes naar ongekende grote hoogtes! Jij kan als PHP Developer echt impact maken voor klanten en hun marketing succesvoller laten worden. Dat door je voor bekende organisaties zoals de NS, Peugeot, Achmea, KvK, Eneco en Miele. Binnen dit bedrijf heerst er een informele, plezierige en open sfeer. Bij onze opdrachtgever ligt er veel aandacht op persoonlijke ontwikkeling. Je gaat hier namelijk vrijheid krijgen om op je eigen manier invulling te geven aan je werk, maar je kan altijd op je collega’s terug kunnen vallen voor advies en tips. Functieomschrijving In de functie van PHP Developer

Bekijk vacature »
Ozzie PHP

Ozzie PHP

27/05/2014 23:26:02
Quote Anchor link
Hallo allemaal,

Ik probeer voor mezelf wat duidelijker te krijgen wat precies een "valid state" van een object is. Regelmatig lees ik dat je via de constructor een object in een valid state moet brengen. Nu vraag ik me af hoe ik dat moet zien.

Een fictief voorbeeldje. Stel ik heb een class die een pannenkoek bakt :-)

Nu geef ik de ingrediënten voor de pannenkoek mee aan de constructor.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$pannenkoekenbakker
= new Pannenkoekenbakker($ingredienten);
?>

Ik heb nu dus de ingrediënten aan de constructor doorgegeven en deze worden geset als class property. Is de class nu in een "valid state"?

Als ik de de pannenkoek uit de pannenkoekenbakker wil halen, ziet dat er zo uit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$pannenkoekenbakker
   = new Pannenkoekenbakker($ingredienten);
$heerlijke_pannenkoek = $pannenkoekenbakker->getPannenkoek();
?>

De oplettende lezer zal het misschien zijn opgevallen dat ik een pannenkoek opvraag, maar dat er nog geen pannenkoek is gebakken!

Mijn vraag is nu, was de Pannenkoekenbakker class hierboven dan wel in een "valid state"? Had de constructor eerst een pannenkoek moeten bakken om een "valid state" te bereiken? Of is het voldoende om in de constructor uitsluitend de ingrediënten te setten om in een "valid state" te geraken, en moet ik vervolgens zelf handmatig de "bakken" method aanroepen voordat ik een pannenkoek kan opvragen? Zo dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$pannenkoekenbakker
= new Pannenkoekenbakker($ingredienten);
$pannenkoekenbakker->bakken();
$heerlijke_pannenkoek = $pannenkoekenbakker->getPannenkoek();
?>

Wanneer is de "valid state" bereikt vraag ik me af? Als ik in dit laatste voorbeeld een pannenkoek opvraag, terwijl die nog niet is gebakken dan heb ik een probleem. Is het dan toch de taak van de constructor om de pannenkoek te bakken om zodoende een "valid state" te bereiken?
Gewijzigd op 27/05/2014 23:28:02 door Ozzie PHP
 
PHP hulp

PHP hulp

12/04/2021 00:12:33
 
Ward van der Put
Moderator

Ward van der Put

28/05/2014 07:31:50
Quote Anchor link
Je kunt (en moet) zelf bepalen wat een "valid state" is.

De class Pannenkoekenbakker kan bijvoorbeeld bij de aanroep van bakken() ook terugmelden: "Pannenkoeken bakken is op dit moment niet mogelijk, want mijn recources (ingrediënten) zijn op."

Het verhaal verandert als een class Pannenkoekenbakker altijd een object moet opleveren dat kan bakken(). Dan zul je dat in de constructor moeten regelen, zodat na new Pannenkoekenbakker() direct bakken() kan worden aangeroepen.

Je kunt het vergelijken met de constructors van PDO en MySQLi. Kan er geen databaseverbinding worden geopend, dan falen die en krijg je geen "valid" object. Logisch, want je hebt zonder connectie geen "valid" connectie-object: het object is een representatie van iets anders, maar dat bestaat niet, dus is het object "invalid". Dat kan, net zoals bij je Pannenkoekenbakker, gebeuren doordat je ze de verkeerde ingrediënten meegeeft of doordat er te weinig externe resources zijn (bijvoorbeeld door een "Too many connections").
 
Dos Moonen

Dos Moonen

28/05/2014 09:27:14
Quote Anchor link
"Is de class nu in een "valid state"?"
Ja, de class wel. Over het object kan ik niets zeggen. Maar als de constructor correct (case-by-case basis) geschreven is, dan wel. Er vanuit gaand dat er geen exception gegooid is natuurlijk, in dat gevan is er namelik geen object. (Er vanuit gaand dat er geen 'this leak' plaats vindt in de constructor.)

"De oplettende lezer zal het misschien zijn opgevallen dat ik een pannenkoek opvraag, maar dat er nog geen pannenkoek is gebakken!"
Dit klinkt eerder als een method die hernoemt moet worden zodat het duidelijk wordt dat er telkens een nieuwe pannenkoek gebakken wordt.
Als je eerst bakken() aan moet roepen voordat je getPannenkoek() successvol aan kan roepen zou het zo kunnen zijn dat je de fout hebt gemaakt om het Sequential coupling anti-pattern toe te passen. (Weer een case-by-case basis, een legitieme use case is dat de remove($key) methode alleen een non-null waarde returned als er eerst add($key, $value) is aangeroepen met de zelfde key.)
Een reden om zulke constructies te vermijden is dat het bij multi-threading niet echt lekker werkt. Dingen afleren is moeilijk, begin zo vroeg mogelijk.
 
Wouter J

Wouter J

28/05/2014 09:50:52
Quote Anchor link
En wat als we nu getPannenkoeken hernoemen naar bakken? Klaar!
 
Ozzie PHP

Ozzie PHP

28/05/2014 10:59:23
Quote Anchor link
Het is (vind ik) lastig om uit te leggen wat ik precies bedoel, dus vandaar ook het misschien wat vreemde voorbeeld van de Pannenkoekenbakker.

@Wouter

>> En wat als we nu getPannenkoeken hernoemen naar bakken? Klaar!

Dat zou kunnen, maar ik wil direct als ik getPannenkoek aanroep een pannenkoek krijgen, en ik wil niet dat ie dan nog moet worden gebakken. Ik wil dus dat dat pannenkoek al klaar ligt op het moment dat ik hem aanroep.

@Dos:

>> Ja, de class wel. Over het object kan ik niets zeggen.

Oké... goede opmerking. En daar heb ik gelijk een vraag over. Is het de taak van de constructor om een class in valid state te brengen, of een object?

>> Als je eerst bakken() aan moet roepen voordat je getPannenkoek() successvol aan kan roepen zou het zo kunnen zijn dat je de fout hebt gemaakt om het Sequential coupling anti-pattern toe te passen.

Dat is precies wat er aan de hand is! Ik moet eerst bakken alvorens ik mijn pannenkoek kan opvragen! Fijn om te leren dat dit dus een anti-pattern is wat ik niet moet gebruiken in dit geval. Is de oplossing dan inderdaad om in de constructor al te gaan bakken?

@Ward:

>> ...zodat na new Pannenkoekenbakker() direct bakken() kan worden aangeroepen.

Bedoel je dan dat bakken() IN de contructor zelf wordt aangeroepen?
 
Wouter J

Wouter J

28/05/2014 11:33:19
Quote Anchor link
>> Dat zou kunnen, maar ik wil direct als ik getPannenkoek aanroep een pannenkoek krijgen, en ik wil niet dat ie dan nog moet worden gebakken. Ik wil dus dat dat pannenkoek al klaar ligt op het moment dat ik hem aanroep.

Dat is behoorlijk krom toch? Of hij moet worden gebakken of op zijn minst worden opgewarmt. Dus een bakken() en opwarmen() method zou dan beter zijn.

Vertel eens je echte probleem, dan kunnen we daar feedback op geven.
 
Dos Moonen

Dos Moonen

28/05/2014 11:33:22
Quote Anchor link
Quote:
Is de oplossing dan inderdaad om in de constructor al te gaan bakken?

Geen idee. Dat zou betekenen dat één Pannenkoekenbakker object maar één pannenkoek kan bakken. En ik kreeg nou juist het idee dat Pannenkoekenbakker een factory was zodat je niet telkens een nieuw Pannenkoekenbakker object hoeft je maken voor pannenkoeken met de zelfde ingredienten. Dan zou de callee namelijk net zo goed zelf een Pannenkoek object aan kunnen maken.

Quote:
Is het de taak van de constructor om een class in valid state te brengen, of een object?

De constructor is (in PHP) een (speciale) instance method. Voor elk object wordt een constructor aangeroepen. Het kan dus niet zo zijn dat constructors de class in een valide staat moeten brengen aangezien het mogelijk is dat een een class wordt gebruikt zonder dat er een instantie van die class bestaat. Dat zou betekenen dat de constructor niet is uitgevoerd en dus de class zich in een invalide staat bevind. Dit mag niet voorkomen.

In Java zou je kunnen zeggen dat een constructor een speciaal non-static initilizer block is, welke constructor uitgevoerd wordt hangt af van de parameters die je mee geeft, je kan die daarna niet nog eens uitvoeren.
Een static initializer block is er logischerwijs verantwoordelijk voor om de class in een valide staat te brengen.
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
package x;

import y;
import z;

public class Test {
    // non-static initializer
    {
        System.out.println("wordt uitgevoerd tijdens het creren van een object, ik geloof n Object's constructor en vr alle andere parent constructors");
    }
    // static initialize block
    static {
        System.out.println("wordt uitgevoerd tijdens het laden van de class");
    }

    // conditioneel non-static initializer
    public Test(String fullName) {
        // ...
    }

    // conditioneel non-static initializer
    public Test(String firstName, String LastName) {
        // ...
    }
}


Als we dat vertalen naar PHP krijgen we zoiets als dit:
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
<?php

namespace x;

use y;
use z;
// static initializer block A {
echo "wordt uitgevoerd tijdens het laden van de class";
// }
class Test {

    // geen non-static initializer blocks mogelijk

    public function __construct($a, $b = NULL) {
        // ...
    }
}

// static initializer block B {
echo "wordt uitgevoerd tijdens het laden van de class";
// }
?>
Gewijzigd op 28/05/2014 11:39:33 door Dos Moonen
 
Ward van der Put
Moderator

Ward van der Put

28/05/2014 11:34:31
Quote Anchor link
Ozzie PHP op 28/05/2014 10:59:23:
@Ward:

>> ...zodat na new Pannenkoekenbakker() direct bakken() kan worden aangeroepen.

Bedoel je dan dat bakken() IN de contructor zelf wordt aangeroepen?

Nee, als een new Pannenkoekenbakker() alleen een geldige Pannenkoekenbakker is indien deze de methode bakken() ondersteunt maar het object daarvoor eerst in een bepaalde toestand moet worden gebracht, dan hoor je daarvoor de constructor te gebruiken.

Je moet voorkomen dat je objecten moet initialiseren. Dat is het domein van de constructor. Of anders gezegd: je wilt niet dat er ongeldige objecten in omloop zijn, want daarmee programmeer je bugs die later tot problemen kunnen leiden. Zoals het Wikipedia-artikel over sequential coupling ook zegt: de aanwezigheid van een methode met "init", "start" of "begin" is een veeg teken dat je een anti-pattern gebruikt.

Wil je niet de constructor gebruiken, dan kun je een ander creational pattern gebruiken om de verantwoordelijkheid te delegeren aan een andere klasse, bijvoorbeeld aan een PannenkoekenbakkerInstituut. Dat PannenkoekenbakkerInstituut zorgt er vervolgens voor dat er alleen Pannenkoekenbakkers te werk worden gesteld die de methode bakken() ondersteunen.
 
Ozzie PHP

Ozzie PHP

28/05/2014 13:06:23
Quote Anchor link
Dankjewel voor de reacties.

@Dos: oké. Dank je voor de toelichting. Een constructor brengt dus een object in een valide staat.

Ik zal nog even op de vraag van Wouter in gaan.

>> Vertel eens je echte probleem, dan kunnen we daar feedback op geven.

Het was een gedachte waar ik mee speelde. Lastig om uit te leggen. Het had te maken met als je iets wilt gebruiken wat eerst geconfigureerd moet worden. Maar beter zou je dan het Factory pattern kunnen gebruiken denk ik nu. Stel je wilt bijv. services configureren, ik zat te denken... moet je dan zoiets doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$configurator
= new ServicesConfigurator($input);
$configurator->configure(); // hiet zat dus mijn twijfel, moet de constructor dit niet doen?
$services = $configurator->getServices();
?>

Nu ik er even met jullie over heb gebabbeld denk ik dat dit een beter oplossing is:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$services
= ServicesBuilder::build($input);
?>
Gewijzigd op 28/05/2014 13:07:01 door Ozzie PHP
 
NOLot -

NOLot -

28/05/2014 14:59:02
Quote Anchor link
Factory pattern zozo
 
Ozzie PHP

Ozzie PHP

28/05/2014 17:07:33
Quote Anchor link
>> Factory pattern zozo

Zo heeft dat toch? Of zeg ik iets raars nu?
 
Wouter J

Wouter J

28/05/2014 19:54:29
Quote Anchor link
Volgens mij gaan we nu compleet de verkeerde kant op.

Ipv nog een klasse erbij te maken omdat we zo graag een aparte configure method willen hebben moeten we eerder gaan nadenken of dit wel is wat je wilt.

Waarom zou ServiceConfigurator bijv. niet met meerdere inputs kunnen werken? Waarom zou ik per input een nieuwe instance moeten aanmaken? Het zou veel logischer zijn als ServiceConfigurator een stateless class zou zijn en de configure method de services in de container zou zetten aan de hand van de input:
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
<?php

$loader
= new ContainerChainLoader(array(
    $yamlLoader, $xmlLoader, $phpLoader
));
$resources = array(
    BASE_DIR.'/config/services.yml',
    // ...
);
foreach ($modules as $module) {
    $resources[] = $module->getConfigResources();
}


$containerConfig = new SeriveConfigurator($loader);

$containerConfig->configure($container, $resources);
?>
 
Ozzie PHP

Ozzie PHP

28/05/2014 21:11:43
Quote Anchor link
Hmmm... dat is iets om over na te denken inderdaad. Met stateless bedoel je dat er geen class properties aanwezig zijn?

Waarom geef je trouwens 3 loaders mee?
 



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.