>> Inhaltsverzeichnis >> Erweiterungen

Plugin: Software Development Kit (SDK)

Allgemeines

Das SDK unterstützt den Entwickler durch eine grafische Oberfläche. Die grafische Oberfläche führt dabei durch vier Schritte, in denen Aussehen, Verhalten und allgemeine Informationen zur Anwendung und zum Urheber bereitgestellt werden können.

Installation

Es wird dringend empfohlen, das SDK nur auf Webservern zu installieren, welche für den öffentlichen Zugriff gesperrt sind. Beispielsweise auf einer lokalen Arbeitsstation, welche nicht über Netzwerk erreichbar ist. Das SDK dient ausschließlich dem Zweck der Entwicklung neuer Anwendungen für das Framework. Um es sinnvoll einsetzen zu können, ist es erforderlich, dass der Benutzer lokal an dem jeweiligen Rechner arbeiten kann und Lese- sowie Schreibrechte für die Verzeichnisse und Dateien des Frameworks besitzt, auf dem das SDK installiert ist. Beziehungsweise in der Lage ist, über eine Remote-Verbindung mit diesen Rechten wie ein lokaler Nutzer zu arbeiten.

Bei unsachgemäßer Nutzung können lokal gespeicherte Anwendungen für das Framework gelöscht oder überschrieben werden. Es wird daher dringend empfohlen, regelmäßig Sicherheitskopien der gespeicherten Dateien anzulegen.

Um das SDK zu installieren gehen Sie wie folgt vor:

  1. Installieren und konfigurieren sie das YANA-Framework wie in der Anleitung beschrieben.
  2. Stellen Sie sicher, dass das Programm Schreibrechte für die Verzeichnisse "plugins" und "skins/default" besitzt.
  3. Melden Sie sich als Administrator an und rufen Sie das Administrationsmenü der Anwendung auf.
  4. Suchen Sie im Menü "Plugins" den Eintrag "Software Development Kit" und aktivieren Sie dieses Plugin. Speichern Sie Ihre Änderungen.
  5. Um das SDK zu starten, wählen Sie den Eintrag "Software Development Kit" aus der Sitemap der Anwendung.

Falls Sie eine Einführung in die Benutzung des SDK wünschen, finden Sie diese im Kapitel "Plugins und Anwendungen erstellen". Ein praktisches Anwendungsbeispiel finden Sie im Einführungstutorial, in Kapitel 3 "Erstellen eines neuen Plugins".

Vorbereitung

Formular 1

allgemeine Informationen

Name der Software:
ein beliebiger Text.
Beschreibung:
ein beliebiger Text. HTML ist NICHT gestattet.
Grafik:
wählen Sie aus der Liste ein Icon, welches die Anwendung repräsentiert

Formular 2

Einige Informationen zu Ihrer Person:

Autor:
Ihr Name
Mailadresse:
Adresse für Rückfragen. Sie können das Feld frei lassen, falls Sie möchten.
Homepage für Updates:
eine gültige URL. Wenn Sie eine Webseite haben, auf der Sie Updates für diese Anwendung bereitstellen möchten, geben Sie hier die Adresse an.

Formular 3

Priorität der Ausführung:
Dieser Wert bestimmt, in welcher Reihenfolge Plugins ausgeführt werden. Sicherheitsrelevante Plugins (Passwortabfragen etc.) sollten eine höhere Priorität haben, dadurch werden sie ausgeführt, bevor andere Plugins an der Reihe sind. Andere Plugins (Log-Files etc.) sollten eine niedrigere Priorität haben.
Typ der Anwendung:
Gültige Werte für den Typ der Anwendung sind:
"default", "primary", "config", "read", "write",  "security".
  • die Mitglieder der Gruppe "security" werden immer ausgeführt und haben eine höhere Ausführungspriorität als alle anderen Plugins. Diese Gruppe dient für Plugins zur Nutzerauthentifizierung.
  • Die Gruppe "config" behandelt ausschließlich Ereignisse vom Typ "default", "security" oder "config". Sie ist gedacht für Plugins welche Funktionen zum Editieren von Konfigurationsdateien bereitstellen. Üblicherweise dienen diese Plugins als Erweiterungen anderer Plugins. Es besteht also eine Abhängigkeit. Diese Abhängigkeit kann unter anderem dadurch ausgedrückt werden, indem definiert wird, dass beide Plugins zum gleichen Paket gehören.
  • Die Gruppe "write" behandelt Ereignisse vom Typ "write", "security" oder "default". Sie ist gedacht für Plugins, welche ausschließlich Schreibzugriffe auf dem Dateisystem oder einer Datenbank durchführen. Diese Gruppe wird erfahrungsgemäß in der Praxis eher selten verwendet. Sie ist aus Gründen der Vollständigkeit hier erwähnt.
  • Die Gruppe "read" behandelt Ereignisse vom Typ "read", "security" oder "default". Sie ist gedacht für Plugins, welche ausschließlich Lesezugriffe auf dem Dateisystem oder einer Datenbank durchführen. Diese Gruppe wird eher selten verwendet.
  • Die Gruppe "primary" behandelt alle Ereignisse außer "config". Sie ist gedacht für Plugins welche als Hauptprogramme fungieren.
  • Die Gruppe "default" behandelt alle Ereignisse außer solche vom Typ "security", "config" und "primary". Sie ist gedacht für "sonstige" Plugins, beziehungsweise als Lösung für Entwickler, welche sich unsicher darüber sind, in welche Gruppe sie Ihr Plugin einordnen sollten.
benötigt das Plugin:
ID-Kennung eines Plugins, welches erforderlich ist, damit dieses funktioniert. Benutzen Sie dieses Feld, wenn Sie eine bestehende Anwendung durch neue Funktionen erweitern wollen. Das Auswahlmenü dient nur als Hilfestellung. Es muss nicht unbedingt eine der IDs dieses Menüs verwendet werden.
gehört zu Paket:
benutzen Sie dieses Feld um auszudrücken, dass zwei Plugins zusammen gehören. Tragen Sie dazu in dieses Feld das gemeinsame "Package" ein, zu dem beide gehören.

Schnittstelle

Wenn Sie andere Aktionen festlegen möchten, können Sie hier deren Schnittstelle definieren. Dazu können Vorlagen verwendet werden, welche das SDK vorgibt. Eine manuelle Erstellung ist ebenfalls möglich. Die Schnittstellen können auch nachträglich von Hand verändert werden.

Formular 4

Für einige Standardaktionen gibt es Vorlagen, welche benutzt werden können. Schauen Sie in die Auswahlliste. Wenn eine Option ausgewählt wurde, erscheint zum Vergleich eine Liste der erzeugten Aktionen. Sie können sich die gesamte Schnittstelle anschauen, indem Sie die Option "Schnittstelle von Hand nachbearbeiten" auswählen.

Formular 5

Eine Schnittstelle enthält folgende Informationen:

Name der Aktion:
Name der Funktion (beliebig). Es sind nur Zeichen von A-Z und 0-9 sowie "_" erlaubt. Schauen Sie sich zum Vergleich die Beispiele an.
Modus:
sollte üblicherweise "Standard" sein. Der abgesicherte Modus ist für den Fall, dass Sie absichtlich Default-Werte verwenden wollen oder müssen.
Templates:
ID-Kennung des Templates, welches verwendet werden soll. Diese Kennung wird im Skin festgelegt. Schauen Sie sich die Skin-Dateien im Verzeichnis "skins/default/*.config" an, oder benutzen Sie das Auswahlmenü als Beispiel! 
Zugriffsbeschränkung:
legt fest, welche Rechte ein Besucher haben muss, damit er diese Aktion aufrufen kann.
Formular 6

Diese Option dient zur Kontrolle, beziehungsweise als Alternative Eingabeoberfläche für erfahrene Nutzer. Sie sehen alle definierten Aktionen und können Änderungen vornehmen.

Vorsicht! Fehler können dazu führen, dass das Plugin nicht korrekt erzeugt werden kann.

Datenbank

Es kann für Datenbankanwendungen automatisch eine GUI generiert werden. Dazu wird eine Strukturdatei benötigt, welche die Datenbank beschreibt. Aus den Informationen dieser Datei erzeugt das SDK für jede Tabelle automatisch passende Template-Dateien, sowie die dazu passenden Aktionen und erzeugt zudem die erforderlichen Ergänzungen für die Schnittstelle der Anwendung.

Wenn Sie keine solche Datenbankanwendung erstellen wollen, kann dieser Schritt übergangen werden.

Automatisch erzeugt werden jeweils: pro Tabelle ein Template zum Anzeigen, Editieren, Anlegen und Durchsuchen von Datenbankinhalten, sowie der PHP-Code für die dazu gehörende Aktionen. Außerdem Aktionen, für den Download von Dateien und Bildern aus der Datenbank. Weiterhin wird eine JavaScript-Datei erzeugt, um über Ajax Aktionen auf dem Server auslösen zu können. Zuletzt wird die Strukturdatei selbst im System gespeichert.

Formular 7

Sollten Sie noch keine Strukturdatei geschrieben haben, können Sie eine solche Datei erzeugen. Benutzen Sie dazu das Plugin "DB-Tools". Öffnen Sie im Administrationsmenü das Menü "DB-Tools" / "Import". Wählen Sie eine der Optionen, um eine bereits existierende Datenbank zu importieren. Falls Sie bis jetzt noch keinerlei Vorlage für die Datenbank zur Verfügung haben, lesen Sie bitte das Einführungstutorial. Beachten Sie auch die Beispiele im Kochbuch für Entwickler.

Formular 8

Wenn Sie eine Strukturdatei erzeugt, oder von Hand geschrieben haben, geben Sie bitte hier den Pfad dieser Datei an. Klicken Sie auf "Durchsuchen", wenn Sie sich nicht sicher sind, wo sich diese befindet.

Installation (SQL)

Dieser Schritt ist optional. Das Framework kann (seit Version 2.8.6) die SQL-Anweisungen für die Installation bei Bedarf automatisch aus der in Schritt 3 angegebenen Strukturdatei erzeugen. Dies funktioniert für: MySQL, MS-SQL, PostgreSQL, Oracle Datenbanken, IBM DB2 und MS Access. Handarbeit ist somit (außer in Ausnahmefällen) unnötig.

Falls für das gewünschte DBMS keine automatische Generierung möglich ist, können Sie eine handgeschriebene SQL-Installationsdatei bereitstellen.

Formular 9

Wählen Sie die Quelldatei im SQL-Format aus, welche die Informationen zur Installation der Datenbank enthält.

Ihre SQL-Installationsdateien finden Sie nach der Generierung des Plugins im Verzeichnis "config/db/.install/". Dieses enthält für jedes unterstützte DBMS Unterverzeichnisse. Hierher können Sie auch nachträglich noch SQL-Dateien von Hand kopieren. Die Datei muss den gleichen Namen haben wie die Strukturdatei und die Endung ".sql" besitzen.

Fertigstellen

Zum Abschließen der Konfiguration klicken Sie bitte auf die Schaltfläche "Fertigstellen".

Das SDK produziert als Ausgabe ein Skelett der Anwendung, alle erforderlichen Templates, sowie alle notwendigen Konfigurationsdateien. Diese beinhalten insbesondere: Meta-Informationen des Plugins inklusive Beschreibung der Schnittstelle, Meta-Informationen der verwendeten Dateien, Meta-Informationen der verwendeten Templates.

Das soeben generierte Plugin ist sofort lauffähig. Sie finden die entsprechenden Dateien im Verzeichnis "plugins" beziehungsweise "skins/default", unter der ID-Kennung des Plugins.

Autor: Thomas Meyer, www.yanaframework.net