[TYPO3-german] ExtBase. Extension ohne Model?

Chris Wolff - AERTiCKET AG cwolff at aer.de
Wed Mar 5 17:21:50 CET 2014


Hallo Alexander,
wenn der Code unten wirklich schon alles ist was deine Extension macht. Macht es wenig sinn das in repository und Model zu spalten.
Es geht ja dabei logische einheiten zu trennen und die Übersichtlichkeit zu erhöhen. Und eventuell ein paar Sachen wie die Model Validation zu gewinnen.
Wenn das aber gar nicht gebraucht wird sollte man sich meiner Meinung nach nicht den overhead antun.

Wenn deine Extension mehr tut z.B. mit verschieden XML Dateien zu hantieren. Und deine XML Daten immer einem gewissen Schema entsprechen sollen macht es sind 
Model und Repository zu erzeugen.

Das Repository ist eine Abstraktion deines Daten Speichers. Wie ein Bücherregal aus dem du Daten raus holen kannst und hinzufügen kannst.
Das Model hingegen beschreibt wie ein Objekt in diesem repository auszusehen hat. Und wie es validiert wird. Das ist gut wenn deine XML Dateien immer einen gleichen Aufbau haben.
So kannst du Fehlern vorbeugen. Weil die Werte validiert werden.

Du könntest ein XML repository aufbauen das dann z.B. findByName() implementiert das dann nach eine datei <name>.xml in einem vorher definierten speicher verzeichnis sucht. 
Das repository würde dann das XML einlesen und ein neues Model Object erzeugen. Und die werte aus der XML datei zu nehmen und dann auf ein die eigenschaften des Objectes zu mappen.

Ich denke bei Größeren projekten gewinnt man viel durch diese extra Schicht von repository und Model.
Das Model bietet die Möglichkeit Daten Validierung an einer zentralen stelle durchzuführen das repository ermöglicht es das laden uns speichern von Objekten zu abstrahieren so das du nur das repository ändern musst falls deine XML Dateien plötzlich von einem Webservice kommen oder doch in die SQL Datenbank Wandern.

Gruss chris
 
-----Ursprüngliche Nachricht-----
Von: typo3-german-bounces at lists.typo3.org [mailto:typo3-german-bounces at lists.typo3.org] Im Auftrag von Alexander Averbukh
Gesendet: Mittwoch, 5. März 2014 16:52
An: typo3-german at lists.typo3.org
Betreff: [TYPO3-german] ExtBase. Extension ohne Model?

Hallo zusammen,

ich habe eine ganz einfache Extension geschrieben, die nicht anderes macht, als Daten aus einem XML-File auslesen und im Frontent zeigen. 
Benötige ich dafür das Model und Repository? Ich habe das ganze in den Controller gepackt. 

class AstroServiceController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
	public function showAction() {
        $extensionClassesPath = \t3lib_extMgm::extPath(\t3lib_div::camelCaseToLowerCaseUnderscored($this->extensionName));
        if ($xml = @simplexml_load_file($extensionClassesPath . '/xml/astro.xml')) {
            $this->view->assign('zodiacSigns', $xml->ContentBody->ZodiacSign);
        }
	}
}

ist es korrekt oder würdet ihr es anders realisieren?

Vielen Dank.
_______________________________________________
TYPO3-german mailing list
TYPO3-german at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


More information about the TYPO3-german mailing list