Ein Pluginsystem mit Paketserver in PHP – Teil 2
Ein Pluginsystem mit Paketserver in PHP – Teil 2
Im letzten Teiles meiner Serie hab ich euch gezeigt, wie man ein Plugin innerhalb einer PHP Anwendung aufruft und, wie man die Plugininformationen effizient in der Datenbank speichert.
Kommen wir heute nun zu einer entscheidenen Frage: Wie ist das Plugin aufgebaut?
Bevor wir zur Datenstruktur kommen, überlegen wir erst einmal, welche Informationen das Plugin immer braucht:
- Name
- Typ
- Installationspfad
- Beschreibung
- Version
- comID (zB com.gvisions.framework)
- Autorname
- Autorurl
- Version
- Vorraussetzungen -> Unser Installationssystem prüft später, ob die Vorraussetzungen gegeben sind, um ein Plugin zu nutzen.
- Downloadpfad -> vor der Installation lädt das Script später erst nur eine .xml Datei mit all diesen Infos herunter, damit wir nicht unnötig Daten laden, falls zB die Vorraussetzungen nicht stimmen
- Lizenzabkommen
- SQL Query bei Installation
- SQL Query bei evtl. Upadte
- SQL Query bei Deinstallation
All diese Infos packen wir in eine xml Datei, welche später auch auf dem UpdateServer liegen wird.
Die XML habe ich logisch strukturiert und sieht wie folgt aus:
<xml>
<type>plugin</type>
<typede>Erweiterung</typede>
<installpath>/apps/</installpath><author>solar22</author>
<date>24.11.2011</date>
<url>http://gvisions.de</url><zipfile>http://update.gvisions.de/app/gmoonlight.zip</zipfile>
<version>0.2</version>
<comid>com.gvisions.gmoonlight</comid>
<name>gMoon!ight</name>
<desc>Kleine Seitenverwaltung. CMS.</desc>
<requirements>com.gvisions.framework-0.1</requirements>
<license>Stimmst du mir zu?</license><updatesql></updatesql>
<installsql></installsql>
<unistallsql></unistallsql></xml>
Das Plugin wird also später von http://update.gvisions.de/app/gmoonlight.zip runtergeladen.
In der zip Datei liegen alle Dateien des Plugins, ausgehend vom Ordner $xml->installpath.$xml->comid (zB /apps/com.gvisions.framework).
Jedes Plugin wird also in einem Ordner installiert, welcher gleich der comid ist.
Innerhalb der zip Datei müssen folgende Dateien vorhanden sein:
/ – root der Zip Datei
/cp – Hier liegen später die Dateien für das ControlPanel
/cp/index.php – Diese Datei stellt die Hauptdatei des CPs dar, natürlich kann das Plugin hier andere Dateien aus seinem CP Ordner nachladen
/index.php – Diese Datei stellt die Hauptdatei des Plugins dar, wenn das Frontend das Plugin lädt (s. Teil 1)
/com.x.y.xml – ggf. die XML Datei des Plugins
Die XML Datei kommt bei meinem Verfahren nicht in die ZIP Datei rein, natürlich kann man dies trotzdem so machen, wenn man zB die Installation via “Datei hochladen” realisieren möchte.
Dies ist die Grundstruktur eines Plugins, natürlich kann der Entwickler weitere Ordner und Dateien erstellen, hauptsache ist nur, dass min. die o.g. Dateien und Ordner vorhanden sind.
Dies war Teil 2 meiner Serie, ich hoffe, es hat euch gefallen und Ihr lest auch Teil 3.

