Kom ihåg mig?
Home Menu

Menu


Php dependency injection

 
Ämnesverktyg Visningsalternativ
Oläst 2013-03-11, 18:42 #5
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Vad är det för modell som bör vara ansvarig för att skicka mail är min första fundering. Lite fler funderingar med lite kod;

Kod:
/* skapa objekt av ditt request för att göra request-hanteringen testbar, går att "sno" direkt av t ex Symfony2 eller ZF2 */
public function index(Request $request) 
{ 
    $model = new Model($request->get('this'), $request->get('that')); // this & that är query strings modellen hanterar

    $model = $this->createModel('Model'); /* Om dina models t ex behöver databas 
blir det lite fulare. I detta exempel skulle en DI container som satts från 
ControllerFactory kunna injectas via setter till modellen om den har en viss property
 eller har en setter för DBn. Använd hellre en repository klass framför som spottar ut modellen. */

/* 'mailer' bör läggas till i service locatorn av din controller factory i ditt 
exempel. Men den bör EJ initieras då den säkerligen inte används till alla requests, 
det görs lättast med closures. Pimple för en väldigt lättviktig DI container med
 closures och shared instances. */
    $this->get('mailer')->send($model->getTitle(), $model->getText()); 
}

Senast redigerad av Clarence den 2013-03-11 klockan 18:42 Anledning: Dum indentering av kommentarer.
Clarence är inte uppkopplad   Svara med citatSvara med citat
 


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

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 05:58.

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