Re: [TYPO3-german] Verwendung Controller bzw. Models in extbase

2013-09-11 Diskussionsfäden Eddy Wolbert

Hallo,

hmm, das klingt plausibel. Würde also letztlich hier bedeuten, das nur 
die Validierung über das Model selbst erfolgt.
Der übrige Ablauf ist eine Sache zwischen Controller und Repository (was 
ja eigentlich bei jedem Datenbankzugriff zutreffen müsste).


Viele Grüße
Eddy


Am 11.09.2013 15:26, schrieb Seidel, Christopher:

Hi,

nein das wäre primär ein Zusammenspiel aus Controller und Repository des 
Models. Der Controller bekommt die Informationen aus dem Login Formular und 
sucht auf Basis dessen im Repository nach übereinstimmenden Werten. Wenn die 
Credentials stimmen bekommst du direkt ein Benutzerobjekt zurück. Von dem 
Objekt aus kannst du dann auf alle getter und setter zugreifen die vorher im 
Model angelegt worden sind also zum Beispiel getName oder ähnliches.

Viele Grüße

Christopher


-Ursprüngliche Nachricht-
Von: typo3-german-boun...@lists.typo3.org 
[mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von Eddy Wolbert
Gesendet: Mittwoch, 11. September 2013 11:43
An: German TYPO3 Userlist
Betreff: Re: [TYPO3-german] Verwendung Controller bzw. Models in extbase

Hallo,

dieser Vorteil der getter-Methoden besteht natürlich.

Aber wie wäre denn in einem ganz banalen Beispiel zu verfahren:
- Ein FE-User loggt sich per Formular ein
- Es sollen nun die Eingabedaten validiert werden
- Falls ok, sollen weitere Daten aus der Datenbank (also dieses
Userdatensatzes)  geholt und weiterverarbeitet werden.

Wäre das nun ausschließlich ein Fall für das Model?

Viele Grüße
Eddy


Am 11.09.2013 11:12, schrieb Seidel, Christopher:

Hi,

der Controller dient nur der Steuerung eines Datenflusses. Logik gehört 
selbstverständlich (sofern abbildbar) KOMPLETT in das Model rein. Daher 
natürlich auch das getPriceWithTax. Dieses Vorgehen hat den ganz entscheidenden 
Vorteil, dass du diese Methode direkt im View aufrufen kannst. Dies gilt für 
alle getter im Model.

Hier findest du näheres:
http://docs.typo3.org/typo3cms/ExtbaseFluidBook/2-BasicPrinciples/2-Do
main-Driven-Design.html

Viele Grüße

Christopher


-Ursprüngliche Nachricht-
Von: typo3-german-boun...@lists.typo3.org
[mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von Eddy
Wolbert
Gesendet: Mittwoch, 11. September 2013 09:58
An: German TYPO3 Userlist
Betreff: Re: [TYPO3-german] Verwendung Controller bzw. Models in
extbase

Hallo Chris,

danke für das ausführliche statement. Ich denke mal, so ganz daneben lag ich bisher 
nicht. Das Model ist für mich bisher tatsächlich nur ein Ort, an dem die Eigenschaften 
eines "Objekts" erfasst und mit getter und setter-Methoden abrufbar sind. Den 
Ansatz mit den Utility Classes werde ich im Hinterkopf behalten, da meine 
Controllermethoden manchmal doch umfangreicher werden.

Bei deinem Beispiel zur Methode "getPriceWithTax" wäre ich wahrscheinlich 
wieder Richtung Controller geschwenkt. Aber das ist wohl genau der Knackpunkt, gehört es 
noch zum Model oder nicht. Wo zieht man die Grenze.

Ich vermute mal, das oft in der Literatur zitierte "Der Controller koordiniert nur, 
das Model bildet die komplette Geschäftslogik ab" tut ein weiteres, das hinter dem 
Model viel mehr vermutet wird und der Controller nur eine Art Gehilfe darstellen könnte.

Viele Grüße
Eddy



Am 10.09.2013 19:27, schrieb chris Wolff:

Hi Eddy,

Ein Model, ist ein Datenspeicher.

es enthält eine Eigenschaften und die nötigen validationen dazu!

eventuell auch einfache funktionen die sich z.b direkt aus den daten
einens models ergeben.
ein model hat in der regel keine weitere logik ausser getter und setter.

eventuelle einfache berechnungs funktionen.

angenommen du hast eien artikel im shop.
könnte das model
z.b folgende werte Eigenschaften haben price Tax

dann könnte da model folgende zusätzlich eine funktion enthalten die
getPriceWithTax() heist um den preis mit der steuer zu ermitteln.

aber mehr funktionalität sollte eigendlich nicht im moddel abgebildet werden.


der Controller sollte den Datenfluss steuern.
er code des Controllers sollte immer überschaubar sein.
eine Action sollte nicht allzu lang werden.

wenn du komplexe logik abilden must ist es sinvoll dafür eine eigene
Utility Classe zu schreiben.

angenommen du must am ende deines formulars ein PDF generieren.

dann kannst due den gesamten code dafür natürlich im Controlle abbilden
aber schönwer währe eine lösung die einen pdfGenerator Classe
injected und dann diese nutzt.

z.b so (pseudo code):
function injectPdfGenerator($pdfGenerator){
 $this->pdfGenerator = $pdfGenerator; } function
newPdfAction($customerData){
 $this->pdfGenerator->createPdfFromCustomerData($customerData);
 $this->emailService->addAttachment($this->pdfGenerator->getPdfFilename());
 $this->emailService->send();
}


hier ist die newPdfAction übersichtlich mann kann den informations
fluss gut verfolgen die auffwendigen sachen passieren dann im
pdfGenerator bzw. emailService

pdfGenerator und email servic

Re: [TYPO3-german] Verwendung Controller bzw. Models in extbase

2013-09-11 Diskussionsfäden Seidel, Christopher
Hi,

nein das wäre primär ein Zusammenspiel aus Controller und Repository des 
Models. Der Controller bekommt die Informationen aus dem Login Formular und 
sucht auf Basis dessen im Repository nach übereinstimmenden Werten. Wenn die 
Credentials stimmen bekommst du direkt ein Benutzerobjekt zurück. Von dem 
Objekt aus kannst du dann auf alle getter und setter zugreifen die vorher im 
Model angelegt worden sind also zum Beispiel getName oder ähnliches.

Viele Grüße

Christopher


-Ursprüngliche Nachricht-
Von: typo3-german-boun...@lists.typo3.org 
[mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von Eddy Wolbert
Gesendet: Mittwoch, 11. September 2013 11:43
An: German TYPO3 Userlist
Betreff: Re: [TYPO3-german] Verwendung Controller bzw. Models in extbase

Hallo,

dieser Vorteil der getter-Methoden besteht natürlich.

Aber wie wäre denn in einem ganz banalen Beispiel zu verfahren:
- Ein FE-User loggt sich per Formular ein
- Es sollen nun die Eingabedaten validiert werden
- Falls ok, sollen weitere Daten aus der Datenbank (also dieses
Userdatensatzes)  geholt und weiterverarbeitet werden.

Wäre das nun ausschließlich ein Fall für das Model?

Viele Grüße
Eddy


Am 11.09.2013 11:12, schrieb Seidel, Christopher:
> Hi,
>
> der Controller dient nur der Steuerung eines Datenflusses. Logik gehört 
> selbstverständlich (sofern abbildbar) KOMPLETT in das Model rein. Daher 
> natürlich auch das getPriceWithTax. Dieses Vorgehen hat den ganz 
> entscheidenden Vorteil, dass du diese Methode direkt im View aufrufen kannst. 
> Dies gilt für alle getter im Model.
>
> Hier findest du näheres: 
> http://docs.typo3.org/typo3cms/ExtbaseFluidBook/2-BasicPrinciples/2-Do
> main-Driven-Design.html
>
> Viele Grüße
>
> Christopher
>
>
> -Ursprüngliche Nachricht-
> Von: typo3-german-boun...@lists.typo3.org 
> [mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von Eddy 
> Wolbert
> Gesendet: Mittwoch, 11. September 2013 09:58
> An: German TYPO3 Userlist
> Betreff: Re: [TYPO3-german] Verwendung Controller bzw. Models in 
> extbase
>
> Hallo Chris,
>
> danke für das ausführliche statement. Ich denke mal, so ganz daneben lag ich 
> bisher nicht. Das Model ist für mich bisher tatsächlich nur ein Ort, an dem 
> die Eigenschaften eines "Objekts" erfasst und mit getter und setter-Methoden 
> abrufbar sind. Den Ansatz mit den Utility Classes werde ich im Hinterkopf 
> behalten, da meine Controllermethoden manchmal doch umfangreicher werden.
>
> Bei deinem Beispiel zur Methode "getPriceWithTax" wäre ich wahrscheinlich 
> wieder Richtung Controller geschwenkt. Aber das ist wohl genau der 
> Knackpunkt, gehört es noch zum Model oder nicht. Wo zieht man die Grenze.
>
> Ich vermute mal, das oft in der Literatur zitierte "Der Controller 
> koordiniert nur, das Model bildet die komplette Geschäftslogik ab" tut ein 
> weiteres, das hinter dem Model viel mehr vermutet wird und der Controller nur 
> eine Art Gehilfe darstellen könnte.
>
> Viele Grüße
> Eddy
>
>
>
> Am 10.09.2013 19:27, schrieb chris Wolff:
>> Hi Eddy,
>>
>> Ein Model, ist ein Datenspeicher.
>>
>> es enthält eine Eigenschaften und die nötigen validationen dazu!
>>
>> eventuell auch einfache funktionen die sich z.b direkt aus den daten 
>> einens models ergeben.
>> ein model hat in der regel keine weitere logik ausser getter und setter.
>>
>> eventuelle einfache berechnungs funktionen.
>>
>> angenommen du hast eien artikel im shop.
>> könnte das model
>> z.b folgende werte Eigenschaften haben price Tax
>>
>> dann könnte da model folgende zusätzlich eine funktion enthalten die
>> getPriceWithTax() heist um den preis mit der steuer zu ermitteln.
>>
>> aber mehr funktionalität sollte eigendlich nicht im moddel abgebildet werden.
>>
>>
>> der Controller sollte den Datenfluss steuern.
>> er code des Controllers sollte immer überschaubar sein.
>> eine Action sollte nicht allzu lang werden.
>>
>> wenn du komplexe logik abilden must ist es sinvoll dafür eine eigene 
>> Utility Classe zu schreiben.
>>
>> angenommen du must am ende deines formulars ein PDF generieren.
>>
>> dann kannst due den gesamten code dafür natürlich im Controlle abbilden
>>aber schönwer währe eine lösung die einen pdfGenerator Classe 
>> injected und dann diese nutzt.
>>
>> z.b so (pseudo code):
>> function injectPdfGenerator($pdfGenerator){
>> $this->pdfGenerator = $pdfGenerator; } function 
>> newPdfAction($customerData){
>> $this->pdfGenerator->createPdfFromCustomerData($customerData);
>> 
>> $this->emailService->addAttachment($this->

Re: [TYPO3-german] Verwendung Controller bzw. Models in extbase

2013-09-11 Diskussionsfäden Eddy Wolbert

Hallo,

dieser Vorteil der getter-Methoden besteht natürlich.

Aber wie wäre denn in einem ganz banalen Beispiel zu verfahren:
- Ein FE-User loggt sich per Formular ein
- Es sollen nun die Eingabedaten validiert werden
- Falls ok, sollen weitere Daten aus der Datenbank (also dieses 
Userdatensatzes)  geholt und weiterverarbeitet werden.


Wäre das nun ausschließlich ein Fall für das Model?

Viele Grüße
Eddy


Am 11.09.2013 11:12, schrieb Seidel, Christopher:

Hi,

der Controller dient nur der Steuerung eines Datenflusses. Logik gehört 
selbstverständlich (sofern abbildbar) KOMPLETT in das Model rein. Daher 
natürlich auch das getPriceWithTax. Dieses Vorgehen hat den ganz entscheidenden 
Vorteil, dass du diese Methode direkt im View aufrufen kannst. Dies gilt für 
alle getter im Model.

Hier findest du näheres: 
http://docs.typo3.org/typo3cms/ExtbaseFluidBook/2-BasicPrinciples/2-Domain-Driven-Design.html

Viele Grüße

Christopher


-Ursprüngliche Nachricht-
Von: typo3-german-boun...@lists.typo3.org 
[mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von Eddy Wolbert
Gesendet: Mittwoch, 11. September 2013 09:58
An: German TYPO3 Userlist
Betreff: Re: [TYPO3-german] Verwendung Controller bzw. Models in extbase

Hallo Chris,

danke für das ausführliche statement. Ich denke mal, so ganz daneben lag ich bisher 
nicht. Das Model ist für mich bisher tatsächlich nur ein Ort, an dem die Eigenschaften 
eines "Objekts" erfasst und mit getter und setter-Methoden abrufbar sind. Den 
Ansatz mit den Utility Classes werde ich im Hinterkopf behalten, da meine 
Controllermethoden manchmal doch umfangreicher werden.

Bei deinem Beispiel zur Methode "getPriceWithTax" wäre ich wahrscheinlich 
wieder Richtung Controller geschwenkt. Aber das ist wohl genau der Knackpunkt, gehört es 
noch zum Model oder nicht. Wo zieht man die Grenze.

Ich vermute mal, das oft in der Literatur zitierte "Der Controller koordiniert nur, 
das Model bildet die komplette Geschäftslogik ab" tut ein weiteres, das hinter dem 
Model viel mehr vermutet wird und der Controller nur eine Art Gehilfe darstellen könnte.

Viele Grüße
Eddy



Am 10.09.2013 19:27, schrieb chris Wolff:

Hi Eddy,

Ein Model, ist ein Datenspeicher.

es enthält eine Eigenschaften und die nötigen validationen dazu!

eventuell auch einfache funktionen die sich z.b direkt aus den daten
einens models ergeben.
ein model hat in der regel keine weitere logik ausser getter und setter.

eventuelle einfache berechnungs funktionen.

angenommen du hast eien artikel im shop.
könnte das model
z.b folgende werte Eigenschaften haben price Tax

dann könnte da model folgende zusätzlich eine funktion enthalten die
getPriceWithTax() heist um den preis mit der steuer zu ermitteln.

aber mehr funktionalität sollte eigendlich nicht im moddel abgebildet werden.


der Controller sollte den Datenfluss steuern.
er code des Controllers sollte immer überschaubar sein.
eine Action sollte nicht allzu lang werden.

wenn du komplexe logik abilden must ist es sinvoll dafür eine eigene
Utility Classe zu schreiben.

angenommen du must am ende deines formulars ein PDF generieren.

dann kannst due den gesamten code dafür natürlich im Controlle abbilden
   aber schönwer währe eine lösung die einen pdfGenerator Classe
injected und dann diese nutzt.

z.b so (pseudo code):
function injectPdfGenerator($pdfGenerator){
$this->pdfGenerator = $pdfGenerator; } function
newPdfAction($customerData){
$this->pdfGenerator->createPdfFromCustomerData($customerData);
$this->emailService->addAttachment($this->pdfGenerator->getPdfFilename());
$this->emailService->send();
}


hier ist die newPdfAction übersichtlich mann kann den informations
fluss gut verfolgen die auffwendigen sachen passieren dann im
pdfGenerator bzw. emailService

pdfGenerator und email service sind dann hoffentlich wieder klassen
die sich gut durch unit test testen lassen.

unit testing von controller logik ist etwas tricky

gruss chris



Am 10. September 2013 16:39 schrieb Eddy Wolbert :

Hallo Typo3-Gemeinde,

ich beschäftige mich jetzt schon einige Zeit mit extbase/fluid und
auch Domain Driven Design sowie das MVC-Paradigma ist mir einleuchtend.

Was mich aber immer wieder umtreibt ist die Frage, ob ein Sachverhalt
korrekterweise nun im Controller oder Model "abgehandelt" werden
soll. Habe ich z.B. ein Formular, so bastle ich mir jeweils dazu ein
Model und lasse hier die einzelnen Felder validieren. Weitere
Verarbeitungen lasse ich dann vom Controller vornehmen.
Ich muss gestehen, i.d.R.  ist bei mir in den meisten Fällen der
Controller am arbeiten.

Gibt es evtl. Richtlinien, Handlungsanweisungen oder auch einfach
Erfahrungswerte, nach denen eindeutig die Verwendung von Model oder
Controller zu bevorzugen ist?
Ich tue mich da etwas schwer.
Vielleicht kann mir dazu ja jemand etwas sagen.

Vielen Dank
Eddy
___
TYPO3-german maili

Re: [TYPO3-german] Verwendung Controller bzw. Models in extbase

2013-09-11 Diskussionsfäden Seidel, Christopher
Hi,

der Controller dient nur der Steuerung eines Datenflusses. Logik gehört 
selbstverständlich (sofern abbildbar) KOMPLETT in das Model rein. Daher 
natürlich auch das getPriceWithTax. Dieses Vorgehen hat den ganz entscheidenden 
Vorteil, dass du diese Methode direkt im View aufrufen kannst. Dies gilt für 
alle getter im Model. 

Hier findest du näheres: 
http://docs.typo3.org/typo3cms/ExtbaseFluidBook/2-BasicPrinciples/2-Domain-Driven-Design.html

Viele Grüße

Christopher 


-Ursprüngliche Nachricht-
Von: typo3-german-boun...@lists.typo3.org 
[mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von Eddy Wolbert
Gesendet: Mittwoch, 11. September 2013 09:58
An: German TYPO3 Userlist
Betreff: Re: [TYPO3-german] Verwendung Controller bzw. Models in extbase

Hallo Chris,

danke für das ausführliche statement. Ich denke mal, so ganz daneben lag ich 
bisher nicht. Das Model ist für mich bisher tatsächlich nur ein Ort, an dem die 
Eigenschaften eines "Objekts" erfasst und mit getter und setter-Methoden 
abrufbar sind. Den Ansatz mit den Utility Classes werde ich im Hinterkopf 
behalten, da meine Controllermethoden manchmal doch umfangreicher werden.

Bei deinem Beispiel zur Methode "getPriceWithTax" wäre ich wahrscheinlich 
wieder Richtung Controller geschwenkt. Aber das ist wohl genau der Knackpunkt, 
gehört es noch zum Model oder nicht. Wo zieht man die Grenze.

Ich vermute mal, das oft in der Literatur zitierte "Der Controller koordiniert 
nur, das Model bildet die komplette Geschäftslogik ab" tut ein weiteres, das 
hinter dem Model viel mehr vermutet wird und der Controller nur eine Art 
Gehilfe darstellen könnte.

Viele Grüße
Eddy



Am 10.09.2013 19:27, schrieb chris Wolff:
> Hi Eddy,
>
> Ein Model, ist ein Datenspeicher.
>
> es enthält eine Eigenschaften und die nötigen validationen dazu!
>
> eventuell auch einfache funktionen die sich z.b direkt aus den daten 
> einens models ergeben.
> ein model hat in der regel keine weitere logik ausser getter und setter.
>
> eventuelle einfache berechnungs funktionen.
>
> angenommen du hast eien artikel im shop.
> könnte das model
> z.b folgende werte Eigenschaften haben price Tax
>
> dann könnte da model folgende zusätzlich eine funktion enthalten die
> getPriceWithTax() heist um den preis mit der steuer zu ermitteln.
>
> aber mehr funktionalität sollte eigendlich nicht im moddel abgebildet werden.
>
>
> der Controller sollte den Datenfluss steuern.
> er code des Controllers sollte immer überschaubar sein.
> eine Action sollte nicht allzu lang werden.
>
> wenn du komplexe logik abilden must ist es sinvoll dafür eine eigene 
> Utility Classe zu schreiben.
>
> angenommen du must am ende deines formulars ein PDF generieren.
>
> dann kannst due den gesamten code dafür natürlich im Controlle abbilden
>   aber schönwer währe eine lösung die einen pdfGenerator Classe 
> injected und dann diese nutzt.
>
> z.b so (pseudo code):
> function injectPdfGenerator($pdfGenerator){
>$this->pdfGenerator = $pdfGenerator; } function 
> newPdfAction($customerData){
>$this->pdfGenerator->createPdfFromCustomerData($customerData);
>$this->emailService->addAttachment($this->pdfGenerator->getPdfFilename());
>$this->emailService->send();
> }
>
>
> hier ist die newPdfAction übersichtlich mann kann den informations 
> fluss gut verfolgen die auffwendigen sachen passieren dann im 
> pdfGenerator bzw. emailService
>
> pdfGenerator und email service sind dann hoffentlich wieder klassen 
> die sich gut durch unit test testen lassen.
>
> unit testing von controller logik ist etwas tricky
>
> gruss chris
>
>
>
> Am 10. September 2013 16:39 schrieb Eddy Wolbert :
>> Hallo Typo3-Gemeinde,
>>
>> ich beschäftige mich jetzt schon einige Zeit mit extbase/fluid und 
>> auch Domain Driven Design sowie das MVC-Paradigma ist mir einleuchtend.
>>
>> Was mich aber immer wieder umtreibt ist die Frage, ob ein Sachverhalt 
>> korrekterweise nun im Controller oder Model "abgehandelt" werden 
>> soll. Habe ich z.B. ein Formular, so bastle ich mir jeweils dazu ein 
>> Model und lasse hier die einzelnen Felder validieren. Weitere 
>> Verarbeitungen lasse ich dann vom Controller vornehmen.
>> Ich muss gestehen, i.d.R.  ist bei mir in den meisten Fällen der 
>> Controller am arbeiten.
>>
>> Gibt es evtl. Richtlinien, Handlungsanweisungen oder auch einfach 
>> Erfahrungswerte, nach denen eindeutig die Verwendung von Model oder 
>> Controller zu bevorzugen ist?
>> Ich tue mich da etwas schwer.
>> Vielleicht kann mir dazu ja jemand etwas sagen.
>>
>> Vielen Dank
>> Eddy
>> ___
>

Re: [TYPO3-german] Verwendung Controller bzw. Models in extbase

2013-09-11 Diskussionsfäden Eddy Wolbert

Hallo Chris,

danke für das ausführliche statement. Ich denke mal, so ganz daneben lag 
ich bisher nicht. Das Model ist für mich bisher tatsächlich nur ein Ort, 
an dem die Eigenschaften eines "Objekts" erfasst und mit getter und 
setter-Methoden abrufbar sind. Den Ansatz mit den Utility Classes werde 
ich im Hinterkopf behalten, da meine Controllermethoden manchmal doch 
umfangreicher werden.


Bei deinem Beispiel zur Methode "getPriceWithTax" wäre ich 
wahrscheinlich wieder Richtung Controller geschwenkt. Aber das ist wohl 
genau der Knackpunkt, gehört es noch zum Model oder nicht. Wo zieht man 
die Grenze.


Ich vermute mal, das oft in der Literatur zitierte "Der Controller 
koordiniert nur, das Model bildet die komplette Geschäftslogik ab" tut 
ein weiteres, das hinter dem Model viel mehr vermutet wird und der 
Controller nur eine Art Gehilfe darstellen könnte.


Viele Grüße
Eddy



Am 10.09.2013 19:27, schrieb chris Wolff:

Hi Eddy,

Ein Model, ist ein Datenspeicher.

es enthält eine Eigenschaften und die nötigen validationen dazu!

eventuell auch einfache funktionen die sich z.b direkt aus den daten
einens models ergeben.
ein model hat in der regel keine weitere logik ausser getter und setter.

eventuelle einfache berechnungs funktionen.

angenommen du hast eien artikel im shop.
könnte das model
z.b folgende werte Eigenschaften haben
price
Tax

dann könnte da model folgende zusätzlich eine funktion enthalten die
getPriceWithTax() heist um den preis mit der steuer zu ermitteln.

aber mehr funktionalität sollte eigendlich nicht im moddel abgebildet werden.


der Controller sollte den Datenfluss steuern.
er code des Controllers sollte immer überschaubar sein.
eine Action sollte nicht allzu lang werden.

wenn du komplexe logik abilden must ist es sinvoll dafür eine eigene
Utility Classe zu schreiben.

angenommen du must am ende deines formulars ein PDF generieren.

dann kannst due den gesamten code dafür natürlich im Controlle abbilden
  aber schönwer währe eine lösung die einen pdfGenerator Classe
injected und dann diese nutzt.

z.b so (pseudo code):
function injectPdfGenerator($pdfGenerator){
   $this->pdfGenerator = $pdfGenerator;
}
function newPdfAction($customerData){
   $this->pdfGenerator->createPdfFromCustomerData($customerData);
   $this->emailService->addAttachment($this->pdfGenerator->getPdfFilename());
   $this->emailService->send();
}


hier ist die newPdfAction übersichtlich mann kann den informations
fluss gut verfolgen
die auffwendigen sachen passieren dann im pdfGenerator bzw. emailService

pdfGenerator und email service sind dann hoffentlich wieder klassen
die sich gut durch unit test testen lassen.

unit testing von controller logik ist etwas tricky

gruss chris



Am 10. September 2013 16:39 schrieb Eddy Wolbert :

Hallo Typo3-Gemeinde,

ich beschäftige mich jetzt schon einige Zeit mit extbase/fluid und auch
Domain Driven Design sowie das MVC-Paradigma ist mir einleuchtend.

Was mich aber immer wieder umtreibt ist die Frage, ob ein Sachverhalt
korrekterweise nun im Controller oder Model "abgehandelt" werden soll. Habe
ich z.B. ein Formular, so bastle ich mir jeweils dazu ein Model und lasse
hier die einzelnen Felder validieren. Weitere Verarbeitungen lasse ich dann
vom Controller vornehmen.
Ich muss gestehen, i.d.R.  ist bei mir in den meisten Fällen der Controller
am arbeiten.

Gibt es evtl. Richtlinien, Handlungsanweisungen oder auch einfach
Erfahrungswerte, nach denen eindeutig die Verwendung von Model oder
Controller zu bevorzugen ist?
Ich tue mich da etwas schwer.
Vielleicht kann mir dazu ja jemand etwas sagen.

Vielen Dank
Eddy
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german





___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] Verwendung Controller bzw. Models in extbase

2013-09-10 Diskussionsfäden chris Wolff
Hi Eddy,

Ein Model, ist ein Datenspeicher.

es enthält eine Eigenschaften und die nötigen validationen dazu!

eventuell auch einfache funktionen die sich z.b direkt aus den daten
einens models ergeben.
ein model hat in der regel keine weitere logik ausser getter und setter.

eventuelle einfache berechnungs funktionen.

angenommen du hast eien artikel im shop.
könnte das model
z.b folgende werte Eigenschaften haben
price
Tax

dann könnte da model folgende zusätzlich eine funktion enthalten die
getPriceWithTax() heist um den preis mit der steuer zu ermitteln.

aber mehr funktionalität sollte eigendlich nicht im moddel abgebildet werden.


der Controller sollte den Datenfluss steuern.
er code des Controllers sollte immer überschaubar sein.
eine Action sollte nicht allzu lang werden.

wenn du komplexe logik abilden must ist es sinvoll dafür eine eigene
Utility Classe zu schreiben.

angenommen du must am ende deines formulars ein PDF generieren.

dann kannst due den gesamten code dafür natürlich im Controlle abbilden
 aber schönwer währe eine lösung die einen pdfGenerator Classe
injected und dann diese nutzt.

z.b so (pseudo code):
function injectPdfGenerator($pdfGenerator){
  $this->pdfGenerator = $pdfGenerator;
}
function newPdfAction($customerData){
  $this->pdfGenerator->createPdfFromCustomerData($customerData);
  $this->emailService->addAttachment($this->pdfGenerator->getPdfFilename());
  $this->emailService->send();
}


hier ist die newPdfAction übersichtlich mann kann den informations
fluss gut verfolgen
die auffwendigen sachen passieren dann im pdfGenerator bzw. emailService

pdfGenerator und email service sind dann hoffentlich wieder klassen
die sich gut durch unit test testen lassen.

unit testing von controller logik ist etwas tricky

gruss chris



Am 10. September 2013 16:39 schrieb Eddy Wolbert :
> Hallo Typo3-Gemeinde,
>
> ich beschäftige mich jetzt schon einige Zeit mit extbase/fluid und auch
> Domain Driven Design sowie das MVC-Paradigma ist mir einleuchtend.
>
> Was mich aber immer wieder umtreibt ist die Frage, ob ein Sachverhalt
> korrekterweise nun im Controller oder Model "abgehandelt" werden soll. Habe
> ich z.B. ein Formular, so bastle ich mir jeweils dazu ein Model und lasse
> hier die einzelnen Felder validieren. Weitere Verarbeitungen lasse ich dann
> vom Controller vornehmen.
> Ich muss gestehen, i.d.R.  ist bei mir in den meisten Fällen der Controller
> am arbeiten.
>
> Gibt es evtl. Richtlinien, Handlungsanweisungen oder auch einfach
> Erfahrungswerte, nach denen eindeutig die Verwendung von Model oder
> Controller zu bevorzugen ist?
> Ich tue mich da etwas schwer.
> Vielleicht kann mir dazu ja jemand etwas sagen.
>
> Vielen Dank
> Eddy
> ___
> TYPO3-german mailing list
> TYPO3-german@lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german



-- 
christian wolff - webdeveloper, tech-loving geek and typo3 enthusiast
telefon: +49 30 347 244 88
mobil:  +49 179 49 44 758
email: ch...@connye.com
adresse: friedelstraße 31 - 12047 berlin

xing-profil: http://www.xing.com/profile/Christian_Wolff43
google+: https://plus.google.com/u/0/115669673917212236875/posts?hl=de
facebook: https://www.facebook.com/1stMachine
flattr: https://flattr.com/profile/1stmachine
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

[TYPO3-german] Verwendung Controller bzw. Models in extbase

2013-09-10 Diskussionsfäden Eddy Wolbert

Hallo Typo3-Gemeinde,

ich beschäftige mich jetzt schon einige Zeit mit extbase/fluid und auch 
Domain Driven Design sowie das MVC-Paradigma ist mir einleuchtend.


Was mich aber immer wieder umtreibt ist die Frage, ob ein Sachverhalt 
korrekterweise nun im Controller oder Model "abgehandelt" werden soll. 
Habe ich z.B. ein Formular, so bastle ich mir jeweils dazu ein Model und 
lasse hier die einzelnen Felder validieren. Weitere Verarbeitungen lasse 
ich dann vom Controller vornehmen.
Ich muss gestehen, i.d.R.  ist bei mir in den meisten Fällen der 
Controller am arbeiten.


Gibt es evtl. Richtlinien, Handlungsanweisungen oder auch einfach 
Erfahrungswerte, nach denen eindeutig die Verwendung von Model oder 
Controller zu bevorzugen ist?

Ich tue mich da etwas schwer.
Vielleicht kann mir dazu ja jemand etwas sagen.

Vielen Dank
Eddy
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german