Kom ihåg mig?

Php dependency injection

 
Ämnesverktyg Visningsalternativ
Gammal 2013-03-11, 18:24 #1
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
OK, tack för ditt svar.
Ja menade alltså att en http request och inte en enkild klass i slutändan använt 50 klasser.

Ja det låter nog vettigt att inte helt utesluta Service locators som du säger. Har sett exempel där man initierar alla object / factories som en "request" behöver och som sedan injectas i själva MVC Controllern som ska hantera requesten. Typ:
<?php
$f = new MyControllerFactory(..);
$c= new MyController();
$c->index($f);
?>

Men det känns bökigt

Om man tänker på ett exempel som ovan men att man inte skickar in dependencies direkt,
bör själva "index" metoden anropa en ServiceLocator ? , om vi nu säger att den ska anropa
en Model klass som i sin tur ska skicka ett mail och spara i en db

<?php
class MyController{

public function index()
{
$m= new MyModel( new ServiceLocator() );
$m->sendMail();

}

}
?>
danjel är inte uppkopplad   Svara med citatSvara med citat
Gammal 2013-03-12, 21:33 #2
coredevs avatar
coredev coredev är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Sep 2007
Inlägg: 1 554
coredev coredev är inte uppkopplad
Bara ett inlägg till!
coredevs avatar
 
Reg.datum: Sep 2007
Inlägg: 1 554
Citat:
Ursprungligen postat av danjel Visa inlägg
...
$f = new MyControllerFactory(..);
$c= new MyController();
$c->index($f);
...
Helt OT, men kunde inte låta bli när jag såg "...Factory":
http://harmful.cat-v.org/software/_j...em-factory.jpg
coredev är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 07:49.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017