Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
In Kapitel 3 haben Sie Repositories bereits kennengelernt. Sie dienen dazu, Objekte darin abzulegen und später wieder daraus zu entnehmen. Für jedes Aggregate-Root-Objekt legen wir ein solches Repository-Objekt an. Über die Aggregate-Root-Objekte wiederum greifen wir dann auf alle Objekte zu, die im zugehörigen Aggregate vorhanden sind. In unserem Beispiel ist Tx_SjrOffers_Domain_Model_Organization ein solches Aggregate-Root-Objekt. Der Klassenname eines Repository ergibt sich dadurch, dass an den Klassennamen des Aggregate-Root-Objekts das Suffix Repository angefügt wird. Das Repository muss die Klasse Tx_Extbase_Persistence_Repository erweitern. Die Klassendatei Tx_SjrOffers_Domain_Repository_OrganizationRepository legen wir im Ordner EXT:sjr_offers/Classes/Domain/Repository/ ab. Der Ordner Repository befindet sich also auf der gleichen Ebene wie der Ordner Model. Der Klassenrumpf bleibt in unserem Falle leer, da sämtliche Methoden, die wir zum Ablegen und Auffinden von Objekten benötigen, bereits in generischer Form in der Klasse Tx_Extbase_Persistence_Repository implementiert sind.