nach fast 2 Wochen Entwicklung und über 5000 Zeilen Code, hier nun die erste Public-Beta vom Kickstarter-Plugin.
Das ist denke ich ganz nett geworden und sollte eine ziemliche Arbeitserleichterung bei der Erstellung eigener
Erweiterungen sein.
Download
Download im Wiki unter http://www.shopware.de/wiki/Shopware-Ki ... 3_444.html
Bugs / Feature-Requests
Ich hoffe auf viel Feedback. Dieses bitte in das Trac-Ticket zum Plugin unter
http://trac.shopware.de/trac/ticket/4891#comment:1
Was machst das Plugin?
Mit dem Shopware Kickstarter-Plugin kann die komplette Grundstruktur eines Plugins automatisch erzeugt werden.
Es ist dazu kein manuelles Coding mehr erforderlich.
Man kann also alle wesentlichen Eigenschaften des Plugins bequem über eine grafische Oberfläche konfigurieren und erhält
als Ergebnis fertigen Code.
Welche Komponenten / Konfigurationen können vorgenommen werden?
- Plugin Grundstruktur / Meta-Daten (Name / Autor etc.)
- Plugin Konfigurationsfelder Backend
- SQL welches bei Installation / Deinstallation ausgeführt werden soll
- Anlegen neuer Frontend-Controller
- Anlegen neuer Backend-Controller
- Erzeugen von Backend Menü-Einträgen für eigene Backend-Controller
- Anlegen von Cronjobs
- Indizierung aller in Shopware verfügbaren Events
- Auswahl dieser Events per Tree-Menü
- Erzeugung des notwendigen Codes zur Integration der Events
- Auslesen aller verfügbaren Objekte, die über Hooks modifiziert werden können.
- Darstellung dieser Objekte + Methoden in einem Tree-Menü
- Auswahl der Methoden, die man überlagern will
- Auto-Erstellung des dazu notwendigen Codes
- Auswahl der Templates, die man modifizieren möchte
- Auswahl der Template-Blöcke, die man modifizieren möchte
- Es wird eine vollständige Bootstrap.php erzeugt, mit allen notwendigen Methoden
- Es werden die notwendigen PHP-Files und Templates für eigene Controller generiert
- Es werden die notwendigen Verzeichnisse, Dateien und Inhalte zur Überlagerung von Templates und Blöcken generiert
Einfach auf den Tab-Reiter Coding wechseln und auf Tag erzeugen klicken.
Das System verfügt über eine integrierte Versionsverwaltung. Jede neue Code-Generierung,
wird also in einem eigenen Verzeichnis gespeichert, so dass man verschiedene Versionsstände
vergleichen kann.
Wie kann ich den Code einsehen?
Einfach im Panel Coding einen Tag auswählen. Unterhalb des Tags befindet sich die komplette Datei- und Verzeichnisstruktur,
die das Kickstarter-Plugin automatisch generiert hat.
Diese Dateien können über einen integrierten Code-Editor direkt geöffnet und auch bearbeitet werden.
Welche Export Funktionen gibt es?
In der Beta kann man sich die XMl-Datei des Projekts unter dem Tab-Reiter "Deploy" anschauen - diese kann man als Vorlage für neue Projekte verwenden.
In der finalen Version wird es folgende, weitere Deployment-Möglichkeiten geben:
- Plugin in den aktuellen Shop exportieren
Damit wird das Plugin automatisch nach Shopware\Plugins\Community exportiert und kann dann direkt über den Plugin-Manager aktiviert werden.
Außerdem kann man natürlich die so exportierten Files auch mit einer IDE weiterbearbeiten. - Zip - Export
Das aktuelle Projekt als Zip-Datei herunterladen - Als Vorlage bereitstellen
Damit kann man das aktuelle Projekt als Vorlage der Community bereitstellen. Diese Vorlagen werden auf einem zentralen Server verwaltet und können
später direkt über den Kickstarter als Basis für neue Plugins verwendet werden. - Upload in Community Store
Man kann das fertige Plugin automatisch in den Community Store uploaden - so muss dieses nur noch durch uns freigegeben werden und ist dann
sofort verfügbar.
Alle Projekte liegen unter engine/Shopware/Plugins/Community/Backend/SwagKick/Projects.
Alle Tags liegen im Workspace-Verzeichnis unterhalb des jeweiligen Projekts.
Was wird sich in der finalen Version noch ändern?
Es werden Such-Möglichkeiten für Events / Hooks und Templates hinzukommen.
Außerdem weitere Deployment-Optionen.
Die Startseite des Plugins muss auch noch fertiggestellt werden
Welche Erweiterungen sind geplant?
Es sollen fertige Vorlagen für ExtJS Backend Plugins und z.B. Zahlungsschnittstellen integriert werden.
Außerdem soll auch die Erstellung von Datenbank-Models automatisiert werden.
So könnte man den manuell zu schreibenden Code für viele Plugins noch weiter reduzieren.
