Teil 5: Module für PHP-basierte E-Commerce-Systeme schreiben
Kommentare

Im Verzeichnis /admin sind alle Controller-Klassen untergebracht – im OXID-Jargon werden sie verwirrenderweise auch als View-Klassen bezeichnet -, die für die Steuerung des Admin-Bereichs verantwortlich sind.

Das Pendant dazu, bezogen auf das Frontend, ist unter /views abgelegt. Außerdem relevant im MVC-Kontext ist der Ordner /core, in dem die Core-, also die Model-Klassen, liegen. Last but not least findet sich im /out-Verzeichnis der View-Teil der Applikation. Hier liegen die Template-Dateien der Smarty-Template-Engine.

Verzeichnisstruktur des OXID eShop

Verzeichnisstruktur des OXID eShop

Wie es der Name schon andeutet, ist das wichtigste Verzeichnis in puncto Modulentwicklung das Verzeichnis /modules. Darin werden die Eigenentwicklungen untergebracht und in eigenen Unterverzeichnissen abgelegt. Abgesehen davon gibt es keine weitere Unterstrukturierung nach Codepools oder Namespaces.

Es ist allerdings üblich, ein Präfix vor den Modulnamen zu schreiben und ihn via Unterstrich abzutrennen, wie Sie es in Listing 4 anhand von phpm erkennen können. Das ist sinnvoll, um von vornherein Namenskonflikte mit anderen Modulen zu vermeiden. Nach der Installation der Standardsoftware ist dort bereits das Modul invoicepdf enthalten, mit dem sich PDF-Rechnungen und -Lieferscheine automatisch generieren lassen.

Innerhalb des Moduls werden die relevanten Klassen nicht weiter strukturiert, es sei denn, man erweitert den Autoloader entsprechend. Im /modules-Verzeichnis findet sich auch die Datei functions.php. Diese wird bereits zu einem frühen Zeitpunkt im Applikationsablauf – nämlich in der Bootstrap-Datei index.php – eingebunden, sodass an dieser Stelle eigene Methoden elegant untergebracht werden können, beispielsweise eine Erweiterung des Autoloaders.

Weiter mit: Teil 6

Alle Teile: Teil 1, Teil 2, Teil 3, Teil 4, Teil 5, Teil 6, Teil 7, Teil 8, Teil 9, Teil 10

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -