===== Überblick ===== Dieses Dokument soll einen Überblick über die Ordnerstruktur DSAo-Mds, die verschiedenen wichtigen Klassen und Komponenten, sowie über deren Verbindungen geben. ==== /devel ==== Hier liegt der gesamte Quelltext von DSAo-Md. === /devel/controllers === Die verschiedenen Action-Controller. Für jedes Modul gibt es hier einen Ordner, unterhalb dessen die einzelnen Controller liegen. Z.B. der Controller /devel/controllers/user/LoginController.php entspricht der Seite /user/login/*. Die verschiedenen Aktionen sind dann Methoden des Controllers. === /devel/etc === Hier befindet sich die Konfiguration. *.dist-Dateien enthalten Standardwerte. === /devel/htdocs === Enthält alles für den Benutzer 'sichtbare'. Sprich die index.php, Grafiken, JavaScript-Dateien, Bilder etc. === /devel/lang === Dieser Ordner enthält die Sprachdateien. Unterhalb dieses Ordners gibt es die folgende Ordnerstruktur: * /devel/lang/$language/*.php - globale und für jedes Modul eine 'globale' Sprachdatei, die cotrollerübergreifende Texte enthält. * /devel/lang/$language/layout - für jedes Layout eine Sprachdatei * /devel/lang/$language/php - Texte, die in den Controllern benutzt werden (für jedes Modul und Controller eigene Ordner). * /devel/lang/$language/template - Texte, die in den Templates benutzt werden * /devel/ === /devel/lib === Bibliotheken. Alle möglichen Klassen (außer den Controllern), die zu DSAo-Md gehören oder dafür benötigt werden. Die Klassen unterhalb von Dsao und Zend können automatisch geladen werden, heißt: * Datei /devel/lib/Dsao/Class/SubClass.php enthält nur die Klasse Dsao_Class_SubClass und nichts weiter === /devel/lib/Dsao === Hier ein kurzer Überblick über die wichtigsten Bereiche/Klassen: * Dsao/Cache/ - [[http://framework.zend.com/manual/en/zend.cache.html|Caching]]. * Dsao/Config - [[http://framework.zend.com/manual/en/zend.config.html|Konfiguration]]. * Dsao/Constructor - Klassen, die Objekte von Zend-Klassen (wie Konfiguration und ACL) erstellen und mit Werten füllen (gehört zum Caching). * Dsao/Controller/ - alles zum Controller gehörenden * Dsao/Controller/Action.php - Der abstrakte Aktion-Controller. Eine der zentralen Steuerklassen, da jeder Controller diesen erweitert und wichtige Initialisierungprozesse etc. hier stattfinden * Dsao/Controller/Action/Helper/* - [[http://framework.zend.com/manual/en/zend.controller.actionhelpers.html|Actionhelper]]. Helferklassen, die z.B. größere Objekte initialisieren, Benutzerauthentifizierung übernehmen usw. * Dsao/Controller/Plugin/* - [[http://framework.zend.com/manual/en/zend.controller.plugins.html|Plugins]]. Ähnlich wie Actionhelper, werden aber vorher ausgeführt und nur einmal pro Aufruf. * Dsao/DataHandler/Abstract.php - Eine übergreifende Klasse für alle Klassen, die intern einen Array von Daten verwalten * Dsao/Db/ - [[http://framework.zend.com/manual/en/zend.db.html|Datenbankklassen]] * Dsao/Db/Table/*.php - [[http://framework.zend.com/manual/en/zend.db.table.html|Tabellenklassen]]. Orientierung bietet hier die Abstract.php. Die Select.php erweitert die ZF-Klasse Zend_Db_Table_Select, um die Verwendung etwas angenehmer zu gestalten * Dsa/Db/DataHandler/ - Übergreifende Klassen für alle Klassen, die intern einen Array von Daten verwalten, die aus der Datenbank geladen werden * Dsao/Filter/ - [[http://framework.zend.com/manual/en/zend.filter.html|Filterklassen]] * Dsao/Hash - Die Klassen repräsentieren einwegverschlüsselte Daten wie Passwörter oder Aktivierungsschlüssel * Dsao/Log - [[http://framework.zend.com/manual/en/zend.log.html|Logging]] * Dsao/Model - Modellklassen, die dem Controller zuarbeiten und sämtliche Datenbankoperationen übernehmen * Dsao/Module - Modulverwaltung * Dsao/Translate - [[http://framework.zend.com/manual/en/zend.translate.html|Sprachverwaltung]] * Dsao/Uri/ - Klassen zur Verwaltung von URIs * Dsao/Validate/ - [[http://framework.zend.com/manual/en/zend.validate.html|Validatoren]] * Dsao/View - die View-Komponente, im Moment durch Smarty repräsentiert * Dsao/Xml - Klassen zur Verwaltung von XML-Dateien === /devel/templates === Hier liegen alle Templates, die Ordnerstruktur sieht folendermaßen aus: * /devel/templates/$layout/$module/$controller/$action.tpl Der Ordner templates_c enthält die comilierten Templates. === /devel/tmp === Standardordner für temporäre Dateien (Caching etc.). === /devel/xml === [[/code/xml/verzeichnisstruktur|XML-Dateien]]. ==== /pool ==== Hier liegt Code, der unvollständig ist und für das Einfügen in /devel zu einem späteren Zeitpunkt vorgesehen ist. ==== /sql ==== Hier liegen die zur Installation von DSAo-Md benötigten SQL-Dateien. ==== /svnupdate.sh ==== Ein SVN-Updatescript, das die aktuelle Revisionsnummer in /devel/tmp/revision schreibt (zur Ausgabe im Template). ===== Klassendiagramm ===== Hier ein Klassendiagramm, das das Zusammenspiel der wichtigsten Klassen darstellt: {{http://data.saviola.de/docs/dsao_md_class_diagramm.svg}}