Neues Pluginsystem ab Shopware 5.2

Mischpult

Mit Version 5.2 von Shopware wurde eine neue, verbesserte Struktur für Plugins eingeführt. Version 5.2 ist nach wie vor kompatibel zur alten ("legacy") Struktur von Plugins, allerdings empfiehlt es sich bei neuen Plugins auch die neue Architektur zu nützen.

Shopware hat bereits eine erste Dokumentation veröffentlicht, die aktuell allerdings noch als „Work in Progress“ markiert ist:
https://developers.shopware.com/developers-guide/plugin-system/

Pluginkonfiguration mittels XML Files

Im Gegensatz zum alten Pluginsystem wird im neuen System die Konfiguration des Plugins in XML Files hinterlegt. Ich finde diese Lösung wirklich gelungen und eine eindeutige Verbesserung im Vergleich zum bisherigen System, bei dem die Konfiguration über die bootstrap.php erfolgt ist.

plugin.xml

In der plugin.xml im Hauptverzeichnis des Plugins wird die Grundlegende Konfiguration abgelegt. Nachstehend ein Beispiel.

<?xml version="1.0" encoding="utf-8"?>
<plugin xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../engine/Shopware/Components/Plugin/schema/plugin.xsd">

<label>Plugin name</label>
<version>0.0.1</version>
<copyright>Synonymous</copyright>
<link>http://www.yourdomain.com</link>
<author>Synonymous</author>
<description>Your plugin description.</description>

<changelog version="0.0.1">
<changes>Initial Release</changes>
</changelog>

<changelog version="0.0.2">
<changes>Upgrade for SW 5.2RC</changes>
</changelog>

<changelog version="0.0.3">
<changes>Update 0.0.3</changes>
</changelog>

<compatibility minVersion="5.2.0" />

</plugin>

Resources/config.xml

In der Datei Resources/config.xml des Pluginverzeichnisses wird eine mögliche Pluginkonfiguration festgelegt. Eine Übersicht aller möglichen Parameter findet man im zugehörigen XSD, das in der SchemaLocation verlinkt ist.

<?xml version="1.0" encoding="utf-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../engine/Shopware/Components/Plugin/schema/config.xsd">
<elements>
<element type="text" required="true">
<name>config-element-name</name>
<label>Configuration element</label>
<label lang="de">Konfigurationselement</label>
<value>Default value</value>
</element>
</elements>
</config>

Kommentar verfassen

Folge mir auf Twitter

Hol Dir kostenlos Tipps und Tricks zu Shopware, E-Commerce und andere Open-Source Produkte.

Folge @synonymousrocks