[TYPO3-german] Verwendung Controller bzw. Models in extbase
chris Wolff
chris at connye.com
Tue Sep 10 19:27:48 CEST 2013
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 <mailinglist at 23zebras.de>:
> 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 at 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: chris at 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
More information about the TYPO3-german
mailing list