Non capisco come viene utilizzato questo "contenitore DI". Gli esempi mostrati sul sito ufficiale non mi dicono nulla: http://pimple.sensiolabs.orgInformazioni sul brufolo
Fondamentalmente ho un sito semplice, che consiste in un insieme di classi: la classe DB, la classe Cache, la classe User e altre ancora che gestiscono i tipi di contenuto.
Tutte queste classi sono come i "servizi" menzionati in Pimple e ogni servizio dovrebbe essere in grado di chiamare un altro servizio. In questo momento sto istanziando i servizi in una classe principale che io uso come un singleton per condividere servizi attraverso altre classi.
Da quello che ho letto, Pimple fa esattamente questo genere di cose, ma come lo uso? : s
È considerata una buona pratica dare a una classe l'intero contenitore? Non violare leggermente la legge di demeter per cui stai dando una lezione più di quanto debba fare il suo lavoro? – AgmLauncher
@AgmLauncher Law of Demeter non si applica ai metodi che creano oggetti in base alla carta originale su LoD. Dal momento che un localizzatore di servizi è effettivamente una fabbrica che crea oggetti, in realtà non sta violando LoD. Tuttavia, tutte le classi che utilizzano un Localizzatore di servizio avranno una dipendenza dalla SL, che ostacola il riutilizzo, quindi è meglio non usarlo come tale ma seguire l'uso suggerito nel primo link che ho fornito. – Gordon
Se si inietta l'intero contenitore Pimple nel costruttore, come possiamo dire quali sono le vere dipendenze per la classe SomeClassThatNeedsSession? Come potrei sapere quali dipendenze deridere per i test? –