Markus Michalski FAQ

Support Form: Installation und Betrieb

Support Form für Sylius - Installation per Composer (Packeton), Setup-Befehl, Update, alte Anfragen per Cronjob löschen, Deinstallation in der richtigen Reihenfolge

English Version

Zurück zur Übersicht

Support Form: Installation und Betrieb

Live Demo: Teste dieses und weitere Plugins live — ohne Installation, ohne Risiko: demo.markus-michalski.net

Installation

Das Repository ist privat und wird über Packeton bereitgestellt (https://packeton.markus-michalski.net). Die Zugangsdaten bekommst du nach dem Lizenzkauf bzw. der Freigabe.

{ "repositories": [{ "type": "composer", "url": "https://packeton.markus-michalski.net" }] }
composer require mmd/sylius-support-form-plugin
  1. Bundle in config/bundles.php registrieren:

    Mmd\SyliusSupportFormPlugin\MmdSyliusSupportFormPlugin::class => ['all' => true],
    
  2. Routen importieren, zum Beispiel in config/routes/mmd_support_form.yaml:

    mmd_sylius_support_form_admin:
        resource: "@MmdSyliusSupportFormPlugin/config/routes/admin.yaml"
    
    mmd_sylius_support_form_shop:
        resource: "@MmdSyliusSupportFormPlugin/config/routes/shop.yaml"
    
  3. Setup-Befehl ausführen:

    bin/console mmd:support-form:setup
    

    mmd:support-form:setup führt nur die offenen Migrationen dieses Plugins aus, nie Migrationen deiner Anwendung oder anderer Plugins. Der Befehl ist idempotent: Gibt es keine neue Migration, passiert nichts, auch nicht nach einem composer update. Sind noch Sylius-eigene Migrationen offen, bricht er ab und weist dich an, zuerst doctrine:migrations:migrate auszuführen. Außerdem prüft er, ob die Routen aus Schritt 2 importiert sind, und gibt andernfalls den passenden Snippet aus. In dein config/-Verzeichnis schreibt er nie. Er fragt vor dem Ausführen nach einer Bestätigung, in Skripten ergänzt du --no-interaction. Das übliche doctrine:migrations:migrate funktioniert weiterhin als Alternative. Führe den Befehl mit demselben Benutzer aus wie deine übrigen Konsolenbefehle.

Grids, Twig Hooks und Menüeintrag registrieren sich selbst, du musst nichts weiter importieren. Das Plugin bringt keine eigenen Assets mit, ein assets:install ist nicht nötig.

Danach findest du die Einstellungen unter Admin-Sidebar → MMKreativ Plugins → Support-Formular (siehe Konfiguration). Das Formular ist unter /support erreichbar.

Das Formular hat keinen eigenen Spam-Schutz. Lies vor dem Livegang die bekannten Einschränkungen.

Update

composer update mmd/sylius-support-form-plugin
bin/console mmd:support-form:setup --no-interaction
bin/console cache:clear

Den Setup-Befehl kannst du nach jedem Update bedenkenlos erneut ausführen: Ohne neue Migration passiert nichts.

Alte Anfragen regelmäßig löschen

Gespeicherte Anfragen enthalten personenbezogene Daten: alles, was Kunden in die von dir definierten Felder tippen, sowie die E-Mail-Adresse. Sie werden nie automatisch gelöscht. Richte dafür einen eigenen Cronjob ein:

Befehl Empfohlenes Intervall Beschreibung
bin/console mmd:support-requests:purge --older-than=90 wöchentlich oder täglich Löscht alle Anfragen endgültig, die älter sind als die angegebene Anzahl Tage (Standard: 90)

--older-than muss eine positive ganze Zahl sein, sonst bricht der Befehl mit einer Fehlermeldung ab.

Beispiel für die Crontab des Benutzers, unter dem auch deine übrigen Konsolenbefehle laufen (Pfad anpassen):

# jeden Montag um 03:00 Uhr: Anfragen löschen, die älter als 90 Tage sind
0 3 * * 1 cd /var/www/shop && bin/console mmd:support-requests:purge --older-than=90 --no-interaction

Es gibt keinen Papierkorb und keine Wiederherstellung. Eine gelöschte Anfrage ist endgültig weg.

Deinstallation

Die Reihenfolge ist wichtig, weil Doctrine die Migrationen nur kennt, solange das Bundle noch registriert ist:

  1. Den Cronjob für mmd:support-requests:purge entfernen.

  2. Bei noch registriertem Bundle die drei Migrationen zurückrollen, pro Version einzeln und die neueste zuerst:

    bin/console doctrine:migrations:execute --down 'Mmd\SyliusSupportFormPlugin\Migrations\Version20260929140000'
    bin/console doctrine:migrations:execute --down 'Mmd\SyliusSupportFormPlugin\Migrations\Version20260929120000'
    bin/console doctrine:migrations:execute --down 'Mmd\SyliusSupportFormPlugin\Migrations\Version20260928095114'
    
  3. Den Routen-Import und den Bundle-Eintrag in config/bundles.php entfernen, danach composer remove mmd/sylius-support-form-plugin ausführen.

Das Zurückrollen löscht alle gespeicherten Anfragen, Feld-Definitionen und Channel-Konfigurationen. Sichere die Daten vorher, wenn du sie noch brauchst.