Barrierefreiheit-Widget: Installation und Betrieb
Barrierefreiheit-Widget für Sylius - Installation per Composer (Packeton), Setup-Befehl, Update, Deinstallation in der richtigen Reihenfolge
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
-
Bundle registrieren in
config/bundles.php:Mmd\SyliusAccessibilityPlugin\MmdSyliusAccessibilityPlugin::class => ['all' => true], -
Admin-Routen importieren, zum Beispiel in
config/routes/mmd_sylius_accessibility.yaml:mmd_sylius_accessibility_admin: resource: "@MmdSyliusAccessibilityPlugin/config/routes/admin.yaml" -
Setup-Befehl ausführen und die Assets veröffentlichen:
bin/console mmd:accessibility:setup bin/console assets:install publicmmd:accessibility:setupführt ausschließlich die noch offenen Migrationen dieses Plugins aus (hier genau eine, für die Tabellemmd_sylius_accessibility_channel_settings), nie die deiner Anwendung oder anderer Plugins. Der Befehl ist idempotent: Ohne neue Migration passiert nichts, auch nicht nach einemcomposer update. Sind Sylius-eigene Migrationen noch 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 selbst. Führe ihn mit demselben Benutzer aus wie deine übrigen Konsolenbefehle; in Skripten ergänzt du--no-interaction. Das klassischedoctrine:migrations:migratefunktioniert weiterhin als Alternative.Die Scripts und das Stylesheet werden immer aus
<base path>/bundles/mmdsyliusaccessibilityplugin/ausgeliefert, nie überasset()oder Sylius-Themes.assets:installgenügt,sylius:theme:assets:installist nicht nötig.Content-Security-Policy: Erlaube
'self'inscript-src. Ist der Farbfilter in einem Channel aktiv, gibt das Plugin außerdem die Filterregeln als Inline-<style>aus; dafür brauchtstyle-srceinen 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:
-
Eigene Overrides von Plugin-Templates (z. B.
skip_target.html.twig) wieder entfernen. -
Bei noch registriertem Bundle die Migration zurückrollen:
bin/console doctrine:migrations:execute --down 'Mmd\SyliusAccessibilityPlugin\Migrations\Version20261003140000' -
Routen-Import und Bundle-Eintrag aus
config/bundles.phpentfernen, dann:composer remove mmd/sylius-accessibility-plugin bin/console assets:install publicDer letzte Aufruf entfernt die kopierten Assets wieder.
Alternativ kannst du die Tabelle
mmd_sylius_accessibility_channel_settingsvon Hand löschen, statt die Migration zurückzurollen. Dann musst du zusätzlich die ZeileMmd\SyliusAccessibilityPlugin\Migrations\Version20261003140000ausdoctrine_migration_versionsentfernen.