Ola mensen,

Ik ben bezig met een service container, maar vraag me af wat nu precies het doel is. Erwin H vertelde vanmiddag in een ander topic dat het goed is om alle objecten in een container te stoppen. Stel dat je een 'user' service aanmaakt, en je stelt de bijbehorende class in op User(), dan zou je deze later heel makkelijk in het configuratiebestand kunnen vervangen door bijv. de class UserNew(). Je hoeft dan niet overal in de code de classnamen aan te gaan passen. Erwin gaf aan dat een class nooit een nieuwe class mag aanmaken, maar dat je dat dus allemaal via de container moet regelen.

Nu vind ik dit wel heel mooi en ik kan me er ook wel in vinden. Ik vraag me alleen wel iets af. Als je alle classes opneemt in een configuratiebestand, dan krijg je toch een superlang configuratiebestand? Stel dat het 'beschrijven' van een service in het configuratiebestand gemiddeld 5 regels in beslag neemt, en je project telt 200 classes... dan ben je al 1000 regels kwijt in je configuratiebestand. Werkt dat niet heel erg vertragend?
Nee, je parsed die configuratie maar 1 keer in productie: Tijdens het allereerste bezoek van de allereerste bezoeker (en dat is heel vaak de developer). Vervolgens serialize je gewoon de container in een cache bestand.
Ja, maar of je nu serialized of niet... dat config/cache bestand moet toch altijd worden ingelezen en vervolgens moeten alle settings worden ingelezen in de container. Toch? Maar als ik van iedere class een service maak... wordt dat config bestand dan niet heel groot?
Uiteindelijk maakt het weinig uit of je het links of rechts hebt staan. Nu heb je alles bij elkaar staan in dat configuratiebestand (of in de service container). Anders heb je het allemaal verspreid over tig bestanden staan in al je verschillende classes. Volgens mij zal het uiteindelijk net zoveel zijn en maakt het dus geen sier uit.
Oké thanks voor je reactie.

Even voor mijn beeldvorming... hoe groot (aantal regels) is jouw configuratiebestand dan dat je bij ieder request inleest?
Alle configuratie bij elkaar? Phoe, 99 + 16 + 36 + 62 + 19 = 232 regels configuratie van de applicatie (routing, security en algemene config) in het Yaml format. 31 + 17 + 9 = 57 regels configuratie in mijn bundles (services) in Xml format. En 2588+heel wat meer regels van externe bundles in Xml formaat.
Ah oke :-)
En die 2588+ heel wat meer... worden die bij iedere request ingeladen? Of worden die alleen (gedeeltelijk) ingeladen als je een bundle gebruikt?

Reageren