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
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
-
Bundle in
config/bundles.phpregistrieren:Mmd\SyliusSupportFormPlugin\MmdSyliusSupportFormPlugin::class => ['all' => true], -
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" -
Setup-Befehl ausführen:
bin/console mmd:support-form:setupmmd:support-form:setupfü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 einemcomposer update. Sind noch Sylius-eigene Migrationen offen, bricht er ab und weist dich an, zuerstdoctrine:migrations:migrateauszuführen. Außerdem prüft er, ob die Routen aus Schritt 2 importiert sind, und gibt andernfalls den passenden Snippet aus. In deinconfig/-Verzeichnis schreibt er nie. Er fragt vor dem Ausführen nach einer Bestätigung, in Skripten ergänzt du--no-interaction. Das üblichedoctrine:migrations:migratefunktioniert 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:
-
Den Cronjob für
mmd:support-requests:purgeentfernen. -
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' -
Den Routen-Import und den Bundle-Eintrag in
config/bundles.phpentfernen, danachcomposer remove mmd/sylius-support-form-pluginausführen.
Das Zurückrollen löscht alle gespeicherten Anfragen, Feld-Definitionen und Channel-Konfigurationen. Sichere die Daten vorher, wenn du sie noch brauchst.