Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.comp.www.php > #22428 > unrolled thread
| Started by | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| First post | 2018-12-16 12:52 +0100 |
| Last post | 2018-12-16 18:46 -0800 |
| Articles | 11 on this page of 31 — 3 participants |
Back to article view | Back to it.comp.www.php
Iniezione delle dipendenze vs Service Locator alex <1j9448a02@lnx159sneakemail.com.invalid> - 2018-12-16 12:52 +0100
Re: Iniezione delle dipendenze vs Service Locator Alessandro Pellizzari <shuriken@amiran.it> - 2018-12-16 17:28 +0000
Re: Iniezione delle dipendenze vs Service Locator alex <1j9448a02@lnx159sneakemail.com.invalid> - 2018-12-17 08:50 +0100
Re: Iniezione delle dipendenze vs Service Locator Alessandro Pellizzari <shuriken@amiran.it> - 2018-12-17 10:51 +0000
Re: Iniezione delle dipendenze vs Service Locator alex <1j9448a02@lnx159sneakemail.com.invalid> - 2018-12-18 14:36 +0100
Re: Iniezione delle dipendenze vs Service Locator Alessandro Pellizzari <shuriken@amiran.it> - 2018-12-20 12:42 +0000
Re: Iniezione delle dipendenze vs Service Locator alex <1j9448a02@lnx159sneakemail.com.invalid> - 2018-12-20 14:49 +0100
Re: Iniezione delle dipendenze vs Service Locator Alessandro Pellizzari <shuriken@amiran.it> - 2018-12-20 17:39 +0000
Re: Iniezione delle dipendenze vs Service Locator alex <1j9448a02@lnx159sneakemail.com.invalid> - 2018-12-20 19:06 +0100
Re: Iniezione delle dipendenze vs Service Locator alex <1j9448a02@lnx159sneakemail.com.invalid> - 2018-12-20 19:28 +0100
Re: Iniezione delle dipendenze vs Service Locator Alessandro Pellizzari <shuriken@amiran.it> - 2018-12-21 09:42 +0000
Re: Iniezione delle dipendenze vs Service Locator alex <1j9448a02@lnx159sneakemail.com.invalid> - 2018-12-21 14:47 +0100
Re: Iniezione delle dipendenze vs Service Locator fmassei@gmail.com - 2018-12-21 15:45 -0800
Re: Iniezione delle dipendenze vs Service Locator alex <1j9448a02@lnx159sneakemail.com.invalid> - 2018-12-22 11:55 +0100
Re: Iniezione delle dipendenze vs Service Locator Alessandro Pellizzari <shuriken@amiran.it> - 2018-12-22 16:12 +0000
Re: Iniezione delle dipendenze vs Service Locator alex <1j9448a02@lnx159sneakemail.com.invalid> - 2018-12-22 17:33 +0100
Re: Iniezione delle dipendenze vs Service Locator Alessandro Pellizzari <shuriken@amiran.it> - 2018-12-22 16:46 +0000
Re: Iniezione delle dipendenze vs Service Locator alex <1j9448a02@lnx159sneakemail.com.invalid> - 2018-12-22 18:37 +0100
Re: Iniezione delle dipendenze vs Service Locator Alessandro Pellizzari <shuriken@amiran.it> - 2018-12-23 15:18 +0000
Re: Iniezione delle dipendenze vs Service Locator alex <1j9448a02@lnx159sneakemail.com.invalid> - 2018-12-23 18:43 +0100
Re: Iniezione delle dipendenze vs Service Locator Alessandro Pellizzari <shuriken@amiran.it> - 2018-12-23 17:52 +0000
Re: Iniezione delle dipendenze vs Service Locator alex <1j9448a02@lnx159sneakemail.com.invalid> - 2018-12-23 18:58 +0100
Re: Iniezione delle dipendenze vs Service Locator fmassei@gmail.com - 2018-12-24 04:22 -0800
Re: Iniezione delle dipendenze vs Service Locator alex <1j9448a02@lnx159sneakemail.com.invalid> - 2018-12-30 14:38 +0100
Re: Iniezione delle dipendenze vs Service Locator alex <1j9448a02@lnx159sneakemail.com.invalid> - 2018-12-22 13:04 +0100
Re: Iniezione delle dipendenze vs Service Locator alex <1j9448a02@lnx159sneakemail.com.invalid> - 2018-12-20 16:18 +0100
Re: Iniezione delle dipendenze vs Service Locator Alessandro Pellizzari <shuriken@amiran.it> - 2018-12-20 17:37 +0000
Re: Iniezione delle dipendenze vs Service Locator alex <1j9448a02@lnx159sneakemail.com.invalid> - 2018-12-20 19:21 +0100
Re: Iniezione delle dipendenze vs Service Locator alex <1j9448a02@lnx159sneakemail.com.invalid> - 2018-12-20 20:19 +0100
Re: Iniezione delle dipendenze vs Service Locator Alessandro Pellizzari <shuriken@amiran.it> - 2018-12-21 09:45 +0000
Re: Iniezione delle dipendenze vs Service Locator fmassei@gmail.com - 2018-12-16 18:46 -0800
Page 2 of 2 — ← Prev page 1 [2]
| From | Alessandro Pellizzari <shuriken@amiran.it> |
|---|---|
| Date | 2018-12-23 17:52 +0000 |
| Message-ID | <g8a0ajFnjjtU1@mid.individual.net> |
| In reply to | #22467 |
On 23/12/2018 17:43, alex wrote:
> Il 23/12/2018 16:18, Alessandro Pellizzari ha scritto:
>> public static function create() {
>> $builder = new ControllerBuilder();
>> $builder->logger = new ConsoleLogger();
>> }
> ??????????????????????????????????????????
> bohhhhhhhhhh :D
>
> $builder a chi ed a che serve????
Complimenti per aver trovato un bug in 70 righe di codice che ho scritto
di getto per aiutarti.
Buon Natale anche a te.
[toc] | [prev] | [next] | [standalone]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2018-12-23 18:58 +0100 |
| Message-ID | <pvoil3$lh6$1@gioia.aioe.org> |
| In reply to | #22468 |
Il 23/12/2018 18:52, Alessandro Pellizzari ha scritto: > Complimenti per aver trovato un bug in 70 righe di codice che ho scritto > di getto per aiutarti. Hai voluto tu scriverle :D La domanda che ho fatto era abbastanza semplice. La risposta poteva essere semplicemente: create() non serve a un bel niente. Ma siccome te le vai cercando :D > Buon Natale anche a te. Direi che una pausa natalizia ci serve proprio. Buon Natale anche a te!!!
[toc] | [prev] | [next] | [standalone]
| From | fmassei@gmail.com |
|---|---|
| Date | 2018-12-24 04:22 -0800 |
| Message-ID | <21d0e44c-4c73-4fab-8f79-cd8152febeca@googlegroups.com> |
| In reply to | #22469 |
ma con che faccia e che coraggio... altro che buon natale :(
[toc] | [prev] | [next] | [standalone]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2018-12-30 14:38 +0100 |
| Message-ID | <q0ahns$ub5$1@gioia.aioe.org> |
| In reply to | #22470 |
Il 24/12/18 13:22, fmassei@gmail.com ha scritto: > ma con che faccia e che coraggio... > altro che buon natale :( > C'è qualche problema? Non capisco?
[toc] | [prev] | [next] | [standalone]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2018-12-22 13:04 +0100 |
| Message-ID | <pvl9hn$bce$1@gioia.aioe.org> |
| In reply to | #22458 |
Il 22/12/2018 00:45, fmassei@gmail.com ha scritto: > Un builder restituisce un oggetto non costruibile in un singolo step, e.g. > quando solo il costruttore non da un oggetto utilizzabile. In pratica: $pizza = new Pizza($farina_adatto, $lievito_adatto); $pizza->metti($olive_scelte_dal_cliente1); $pizza->metti($olio_scelto_dal_cliente1); return $pizza; $pizza = new Pizza($farina_adatto, $lievito_adatto); $pizza->metti($olive_scelte_dal_cliente2); $pizza->metti($olio_scelto_dal_cliente2); return $pizza; ????
[toc] | [prev] | [next] | [standalone]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2018-12-20 16:18 +0100 |
| Message-ID | <pvgc6f$gr3$1@gioia.aioe.org> |
| In reply to | #22432 |
Il 17/12/2018 11:51, Alessandro Pellizzari ha scritto: >>> Ora veniamo alla DI. La DI dà allo sviluppatore controllo totale su cosa >>> passare a un oggetto. Invece di istanziare un oggetto e passargli il SL, >>> gli passi direttamente le dipendenze. Lo svantaggio è che se istanzi un >>> oggetto in profondità nel codice devi passare le dipendenze attraverso >>> tutto l'albero. Perchè istanziare in profondità (preferisco farlo solo in index.php o nell'SL)? >> Anche l`SL è una dipendenza che verrebbe passata allo stesso modo, o >> sbaglio? > > Può esserlo. Io preferisco essere esplicito e passarla con DI, ma > potrebbe essere un singleton (o un borg, per i pignoli :P) e lo istanzi > dove ti serve. > >> Per non violare il principio di DI, gli istanziamenti non andrebbero >> fatti solo in uno dei file principali (index.php, Controller.php, ecc.)? > > Gli istanziamenti li fai o nel index.php (e poi li infili nel SL) o nel > SL stesso. In questo modo hai tutto nello stesso posto. Appunto. > Nella mia esperienza conviene sempre tenere la struttura più piatta > possibile, ma siccome non è sempre facile, io preferisco avere un SL >che > passo ai livelli più alti, i quali poi usano DI prendendo la roba dal >SL > quando istanziano un oggetto. In profondità suppongo. Prima dici che vuoi instanziare in profondità, poi in superfice (SL), poi di nuovo in profondità, boh :D
[toc] | [prev] | [next] | [standalone]
| From | Alessandro Pellizzari <shuriken@amiran.it> |
|---|---|
| Date | 2018-12-20 17:37 +0000 |
| Message-ID | <g822a7F1gggU1@mid.individual.net> |
| In reply to | #22444 |
On 20/12/2018 15:18, alex wrote: > Il 17/12/2018 11:51, Alessandro Pellizzari ha scritto: > > Nella mia esperienza conviene sempre tenere la struttura più piatta > > possibile, ma siccome non è sempre facile, io preferisco avere un SL > >che > > passo ai livelli più alti, i quali poi usano DI prendendo la roba dal > >SL > > quando istanziano un oggetto. > In profondità suppongo. > Prima dici che vuoi instanziare in profondità, poi in superfice (SL), > poi di nuovo in profondità, boh :D Il SL è "parallelo", non in profondità. Il SL viene creato da index.php (profondità 0), e passato ai controller (via router o via singleton) I servizi vengono creati alla bisogna dal SL. Siccome è il controller (profondità 1) che invoca i servizi dal SL, si istanziano quasi in superficie. Poi il controller può passare i servizi più giù, se necessario, via DI. Per esempio passando il logger alla view (prof. 2) che lo passa al template engine (prof. 3), che magari usa un minificatore (prof. 4), che magari ha un DOM parser (prof. 5), ecc. ecc. Bye.
[toc] | [prev] | [next] | [standalone]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2018-12-20 19:21 +0100 |
| Message-ID | <pvgmtd$5c8$1@gioia.aioe.org> |
| In reply to | #22445 |
Il 20/12/2018 18:37, Alessandro Pellizzari ha scritto: > > Il SL è "parallelo", non in profondità. > > Il SL viene creato da index.php (profondità 0), e passato ai controller > (via router o via singleton) > > I servizi vengono creati alla bisogna dal SL. > > Siccome è il controller (profondità 1) che invoca i servizi dal SL, si > istanziano quasi in superficie. > > Poi il controller può passare i servizi più giù, se necessario, via DI. In che modo? La DI dovrebbe essere fatta (tramite costruttore o setter) solo in superfice dall'index.php o dall'SL. > Per esempio passando il logger alla view (prof. 2) che lo passa al > template engine (prof. 3), che magari usa un minificatore (prof. 4), che > magari ha un DOM parser (prof. 5), ecc. ecc. > > Bye.
[toc] | [prev] | [next] | [standalone]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2018-12-20 20:19 +0100 |
| Message-ID | <pvgqa9$mje$1@gioia.aioe.org> |
| In reply to | #22448 |
Il 20/12/2018 19:21, alex ha scritto:
> La DI dovrebbe essere fatta (tramite costruttore o setter) solo in
> superfice dall'index.php o dall'SL.
O dall'SLF (ServiceFactoryLocator), vedi l'altro post.
$x = new ServiceLocator();// te lo ricordi?
// iniezione di A, B, C (vedi l'altro post)
$tester = new Tester;
// iniettiamo un debbugger nel tester (ecco la DI di cui parlavo)
$tester->setDebugger(new Debugger);
$x->setServiceTest($tester);
return $x;// esattamente come nell'altro post
[toc] | [prev] | [next] | [standalone]
| From | Alessandro Pellizzari <shuriken@amiran.it> |
|---|---|
| Date | 2018-12-21 09:45 +0000 |
| Message-ID | <g83r14Fd3mkU2@mid.individual.net> |
| In reply to | #22450 |
On 20/12/2018 19:19, alex wrote: > $x = new ServiceLocator();// te lo ricordi? > > // iniezione di A, B, C (vedi l'altro post) > > $tester = new Tester; > // iniettiamo un debbugger nel tester (ecco la DI di cui parlavo) > $tester->setDebugger(new Debugger); > $x->setServiceTest($tester); > > return $x;// esattamente come nell'altro post Stai usando la DI per iniettare dipendenze nel Service Locator. Per definizione il SL dovrebbe essere quello che gestisce TUTTE le dipendenze. Lo stai facendo al contrario. Bye.
[toc] | [prev] | [next] | [standalone]
| From | fmassei@gmail.com |
|---|---|
| Date | 2018-12-16 18:46 -0800 |
| Message-ID | <a732615d-9275-414f-9cab-1356cc31e901@googlegroups.com> |
| In reply to | #22428 |
On Sunday, December 16, 2018 at 6:57:17 AM UTC-5, alex wrote: > https://medium.com/@ivorobioff/dependency-injection-vs-service-locator-2bb8484c2e20 > > cosa ne pensate? > La fine: "Hope this article cleared some things up for you and you enjoyed reading it. If not, then you must be already smartest programer out there" Well maybe not, Igor "software developer since 2010" you can just ... .. . 'nuf said. Ha solo scritto in breve come si usano. Alessandro in un post ha scritto meglio e più chiaramente quello di cui voleva parlare. Quindi niente, se conosci Igor di persona puoi dirgli che, visto che ho un ad-blocker, oltre la figura meschia, nemmno si prenderà il centesimo del mio click. Ah, ma prima o poi tutti 'sti poveracci spariranno, mica che no. Ciao!
[toc] | [prev] | [standalone]
Page 2 of 2 — ← Prev page 1 [2]
Back to top | Article view | it.comp.www.php
csiph-web