Einführung

Guite edited this page Nov 12, 2014 · 8 revisions
Clone this wiki locally

Einführung in die Modulprogrammierung für Zikula

Bevor Du loslegst ein Modul zu programmieren solltest Du Dir genau überlegen, was Dein Modul überhaupt machen soll. Dabei solltest Du bedenken, dass es schon eine Vielzahl anderer Module gibt, die zum Beispiel als Hook Aufgaben erledigen, die Dein Modul nicht unbedingt selbst erfüllen muss: Dadurch dass es zum Beispiel EZComments gibt, musst Du in Deinem Modul keine Kommentarfunktion vorsehen. Es reicht, Hooks zu unterstützen. Genauso gibt es Modul, um Medien zu speichern, für Tagging usw.

Wie fange ich am Besten an? Natürlich lassen sich für Zikula Erweiterungen im klassischen PHP schreiben. Doch es gibt mit dem ModuleStudio ein Tool, mit dem Du Dir viel wiederkehrende Arbeit sparen kannst: Über ein grafisches Frontend kannst Du Dir das Modul modellieren - Datenbank zusammenstellen, Funktionen festlegen... Am Ende generiert Dir das ModuleStudio ein funktionierendes Modul: Es lässt sich installieren und Du kannst Daten ein- und ausgeben. Du musst dann nur noch die Teile selbst programmieren, die von Basischema abweichen. Dazu musst Du natürlich wissen, wie ein Modul aufgebaut ist:

Übersicht

Ein Zikula-Modul besteht aus folgenden Schichten:

Präsentationsschicht

Die Präsentationsschicht findest Du in den Templates.

Kontrollschicht

Die Kontrollschicht findest Du in den PHP-Dateien im Hauptverzeichnis Deines Moduls. Deren Funktionen werden per URL aufgerufen. Die Kontrollschicht vermittelt zwischen Benutzer und System.

Domänenschicht

Die Domänenschicht nennt sich bei Zikula "API" - über diese API spricht die Kontrollschicht mit der Datenbank. Über die APIs der Module können auch die Module untereinander kommunizieren.

Persistenzschicht

Die Persistenzschicht ist die Datenbank, bzw. die Datenbank-Abstraktion, die bei Zikula von Doctrine 2 (früher ADOdb, Doctrine) geleistet wird und dafür sorgt, dass Zikula neben MySQL u. a. auch auf Postgres, MS SQL und Oracle läuft.

Weiterlesen