Markus Michalski FAQ

XML-Sitemap: Installation und Betrieb

Installation der XML-Sitemap für Sylius 2 über Packeton: Bundle und Routen, Setup-Befehl, Update, Cronjob für die regelmäßige Generierung, Ablageordner und Deinstallation.

English Version

Zurück zur Übersicht

XML-Sitemap: Installation und Betrieb

Diese Dokumentation bezieht sich immer auf die aktuellste veröffentlichte Version.

Voraussetzungen

Sylius ^2.2, PHP ^8.3 mit ext-xmlwriter, Symfony ^7.4 und MySQL 8 oder MariaDB. Die vollständige Liste steht in der Übersicht.

Installation

Composer (Packeton)

Das Plugin liegt in einem privaten Repository, das über Packeton (https://packeton.markus-michalski.net) bereitgestellt wird. Die Zugangsdaten bekommst du nach dem Lizenzkauf.

Repository in der composer.json des Shops eintragen:

{ "repositories": [{ "type": "composer", "url": "https://packeton.markus-michalski.net" }] }

Paket installieren:

composer require mmd/sylius-sitemap-plugin

Danach in dieser Reihenfolge:

  1. Bundle in config/bundles.php registrieren:

    Mmd\SyliusSitemapPlugin\MmdSyliusSitemapPlugin::class => ['all' => true],
    
  2. Routen in config/routes/mmd_sylius_sitemap.yaml importieren:

    mmd_sylius_sitemap_admin:
        resource: "@MmdSyliusSitemapPlugin/config/routes/admin.yaml"
    
    mmd_sylius_sitemap_shop:
        resource: "@MmdSyliusSitemapPlugin/config/routes/shop.yaml"
    
  3. Setup-Befehl ausführen:

    bin/console mmd:sitemap:setup
    

Die Shop-Routen gehören auf die oberste Ebene, nicht unter das Präfix /{_locale} der Sylius-Shop-Routen. Crawler fragen die Sitemap direkt unter der Wurzel des Hosts ab.

Admin-Grid, Twig-Hooks und das Doctrine-Mapping registriert das Bundle selbst, dafür ist keine weitere Konfiguration nötig.

Der Setup-Befehl

bin/console mmd:sitemap:setup ersetzt doctrine:migrations:migrate:

Wer doctrine:migrations:migrate selbst ausführt, erreicht dasselbe.

Update

  1. composer update mmd/sylius-sitemap-plugin
  2. bin/console mmd:sitemap:setup (ohne neue Migration passiert nichts)
  3. bin/console cache:clear

Regelmäßig generieren

Die Sitemap wird nicht bei jeder Katalogänderung neu erzeugt. Lass den Befehl regelmäßig laufen, zum Beispiel täglich:

15 3 * * * cd /var/www/shop && bin/console mmd:sitemap:generate

Container ohne Cron-Daemon starten den Befehl stattdessen aus einer Sleep-Schleife unter supervisord.

Der Ablageordner storage_dir muss Deployments überstehen und für den Benutzer des Befehls schreibbar sowie für den Webserver-Benutzer lesbar sein. Wird var/ bei jedem Deployment neu angelegt, mountest du das Verzeichnis dauerhaft oder generierst direkt nach dem Deployment.

Deinstallation

Reihenfolge einhalten, solange das Bundle noch registriert ist:

  1. Migration zurückrollen:

    bin/console doctrine:migrations:execute --down 'Mmd\SyliusSitemapPlugin\Migrations\Version20261001100000'
    
  2. Routen-Datei config/routes/mmd_sylius_sitemap.yaml und den Eintrag in config/bundles.php entfernen.

  3. composer remove mmd/sylius-sitemap-plugin

  4. Optional das Verzeichnis storage_dir (Standard var/sitemap) löschen.

Das Zurückrollen löscht die Einstellungen aller Channels. Die erzeugten XML-Dateien bleiben im Dateisystem liegen, bis du sie entfernst.