Markus Michalski FAQ

Barrierefreiheit-Widget: Installation und Betrieb

Barrierefreiheit-Widget für Sylius - Installation per Composer (Packeton), Setup-Befehl, Update, Deinstallation in der richtigen Reihenfolge

English Version

Zurück zur Übersicht

Barrierefreiheit-Widget: 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 Lizenzkauf bzw. Freigabe.

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

    Mmd\SyliusAccessibilityPlugin\MmdSyliusAccessibilityPlugin::class => ['all' => true],
    
  2. Admin-Routen importieren, zum Beispiel in config/routes/mmd_sylius_accessibility.yaml:

    mmd_sylius_accessibility_admin:
        resource: "@MmdSyliusAccessibilityPlugin/config/routes/admin.yaml"
    
  3. Setup-Befehl ausführen und die Assets veröffentlichen:

    bin/console mmd:accessibility:setup
    bin/console assets:install public
    

    mmd:accessibility:setup führt ausschließlich die noch offenen Migrationen dieses Plugins aus (hier genau eine, für die Tabelle mmd_sylius_accessibility_channel_settings), nie die deiner Anwendung oder anderer Plugins. Der Befehl ist idempotent: Ohne neue Migration passiert nichts, auch nicht nach einem composer update. Sind Sylius-eigene Migrationen noch 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 selbst. Führe ihn mit demselben Benutzer aus wie deine übrigen Konsolenbefehle; in Skripten ergänzt du --no-interaction. Das klassische doctrine:migrations:migrate funktioniert weiterhin als Alternative.

    Die Scripts und das Stylesheet werden immer aus <base path>/bundles/mmdsyliusaccessibilityplugin/ ausgeliefert, nie über asset() oder Sylius-Themes. assets:install genügt, sylius:theme:assets:install ist nicht nötig.

    Content-Security-Policy: Erlaube 'self' in script-src. Ist der Farbfilter in einem Channel aktiv, gibt das Plugin außerdem die Filterregeln als Inline-<style> aus; dafür braucht style-src einen Nonce oder Hash.

Solange du im Admin keinen Channel aktivierst, zeigt das Widget nichts an (siehe Konfiguration). Admin-Grid, Twig Hooks, die Shop-API-Resource und das Doctrine-Mapping registrieren sich selbst; Shop-Routen gibt es nicht, das Plugin hat keine. Eine YAML-Konfiguration des Bundles gibt es nicht, alle Einstellungen liegen in der Datenbank.

Update

composer update mmd/sylius-accessibility-plugin
bin/console mmd:accessibility:setup --no-interaction
bin/console assets:install public
bin/console cache:clear

Den Setup-Befehl nach jedem Update erneut auszuführen ist unbedenklich: Ohne neue Migration passiert nichts.

Deinstallation

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

  1. Eigene Overrides von Plugin-Templates (z. B. skip_target.html.twig) wieder entfernen.

  2. Bei noch registriertem Bundle die Migration zurückrollen:

    bin/console doctrine:migrations:execute --down 'Mmd\SyliusAccessibilityPlugin\Migrations\Version20261003140000'
    
  3. Routen-Import und Bundle-Eintrag aus config/bundles.php entfernen, dann:

    composer remove mmd/sylius-accessibility-plugin
    bin/console assets:install public
    

    Der letzte Aufruf entfernt die kopierten Assets wieder.

Alternativ kannst du die Tabelle mmd_sylius_accessibility_channel_settings von Hand löschen, statt die Migration zurückzurollen. Dann musst du zusätzlich die Zeile Mmd\SyliusAccessibilityPlugin\Migrations\Version20261003140000 aus doctrine_migration_versions entfernen.