Lebenszyklus & Installation

Installieren & verwalten

Ein Plugin durchläuft mehrere Zustände: Es wird registriert, installiert, aktiviert – und irgendwann eventuell wieder deaktiviert oder entfernt. Shopware steuert das über die Konsole und über Lebenszyklus-Methoden.

Installation über die Konsole

# Neue/geänderte Plugins registrieren
bin/console plugin:refresh

# Installieren und in einem Schritt aktivieren
bin/console plugin:install --activate SwagExample

# Nach Änderungen: Cache leeren
bin/console cache:clear

Die wichtigsten Befehle im Überblick:

BefehlWirkung
plugin:refreshverfügbare Plugins neu einlesen
plugin:installPlugin installieren (--activate aktiviert direkt)
plugin:activateein installiertes Plugin aktivieren
plugin:deactivateaktiv → inaktiv
plugin:uninstallPlugin entfernen (räumt i. d. R. auch Daten auf)
plugin:updateauf eine neue Version aktualisieren

Lebenszyklus-Methoden

Für Auf- und Aufräumarbeiten überschreibt man Methoden der Basisklasse. Sie bekommen einen Kontext mit, über den sich z. B. der Service-Container ansprechen lässt.

use Shopware\Core\Framework\Plugin;
use Shopware\Core\Framework\Plugin\Context\InstallContext;
use Shopware\Core\Framework\Plugin\Context\UninstallContext;

class SwagExample extends Plugin
{
    public function install(InstallContext $context): void
    {
        // z. B. Standardwerte setzen
    }

    public function uninstall(UninstallContext $context): void
    {
        // Aufräumen – nur wenn keine Daten behalten werden sollen
        if ($context->keepUserData()) {
            return;
        }
    }
}

Praxis-Tipp: Für Datenbank-Änderungen nutzt man Migrationen statt der install()-Methode. Die laufen versioniert und nachvollziehbar – dazu mehr auf der Seite zu eigenen Entities.

Steht das Plugin, kann es sinnvoll etwas tun. Der erste Schritt dahin: eigene Services registrieren.