ithilbert / sitemap
Erstellt dynamisch eine sitemap.xml
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:libary
This package is auto-updated.
Last update: 2025-03-12 15:16:28 UTC
README
✨ Features
- Dynamische Generierung einer
sitemap.xml
aus Laravel-Routen - Unterstützung für
priority()
,changefreq()
undnoIndex()
direkt in den Routen - Konfigurierbare Ausschlüsse:
- Routen mit
{...}
Platzhaltern - Routen, die mit
_
beginnen - Routen mit bestimmten Präfixen (z. B.
admin/*
) - Routen mit bestimmten Suffixen (z. B.
*/edit
,*/create
) - Exakte Ausschlüsse aus
config/sitemap.php
- Routen mit
- Unterstützung für nur GET & ANY Routen
🛠 Installation
1. Package via Composer installieren
Füge dein Package als lokale Abhängigkeit hinzu:
composer require ithilbert/sitemap
Falls es sich um ein privates Repository handelt:
"repositories": [ { "type": "vcs", "url": "git@github.com:ithilbert/sitemap.git" } ]
2. Service Provider registrieren (falls nicht automatisch erkannt)
Füge in config/app.php
unter providers
hinzu:
ITHilbert\Sitemap\SitemapServiceProvider::class,
3. Konfiguration veröffentlichen
php artisan vendor:publish --tag=config
Dies erstellt die Datei config/sitemap.php
, die du nach Bedarf anpassen kannst.
🔧 Konfiguration
Die Konfigurationsdatei config/sitemap.php
erlaubt es, Standardwerte und Ausschlüsse zu definieren:
return [ 'defaults' => [ 'priority' => '0.5', 'changefreq' => 'weekly', ], 'exclude' => [ 'exact' => [ '_debugbar/*', '_ignition/*', 'admin/permissions', ], 'prefix' => [ // Ausschluss von allen "admin/*"-Routen 'admin', 'dashboard', ], 'suffix' => [ // Ausschluss von "*/edit", "*/create" 'edit', 'create', 'delete' ], ], ];
✅ Nutzung
**1. Sitemap.xml **
Es wird automatisch die Route 'sitemap.xml' zur Anwendung hinzugefügt.
2. Routen mit Metadaten definieren
Route::get('/', function () { return view('home'); })->name('home')->priority('1.0')->changefreq('daily'); Route::get('/about', function () { return view('about'); })->name('about')->priority('0.8')->changefreq('monthly'); Route::get('/admin/dashboard', function () { return view('dashboard'); })->name('dashboard')->noIndex(); // Diese Route erscheint nicht in der Sitemap
🔬 Regeln der Sitemap-Generierung
- Nur GET & ANY Routen werden in die Sitemap aufgenommen.
- Routen mit
{...}
(Platzhalter wie{id}
) werden ausgeschlossen. - Routen, die mit
_
beginnen, werden ausgeschlossen. - Konfigurierbare Ausschlüsse:
- Präfix-Filter: (
admin/*
,dashboard/*
) - Suffix-Filter: (
*/edit
,*/create
,*/delete
) - Exakte Pfade aus
config/sitemap.php
- Präfix-Filter: (
📝 Beispiel-Sitemap-Ausgabe
Ein Beispiel für eine generierte sitemap.xml
:
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>http://your-domain.com/</loc> <lastmod>2025-03-12T14:21:27+00:00</lastmod> <changefreq>daily</changefreq> <priority>1.0</priority> </url> <url> <loc>http://your-domain.com/about</loc> <lastmod>2025-03-12T14:21:27+00:00</lastmod> <changefreq>monthly</changefreq> <priority>0.8</priority> </url> </urlset>
⚙ Entwicklung & Tests
Tests ausführen
Falls du PHPUnit nutzt, kannst du Tests mit folgendem Befehl ausführen:
php artisan test
Oder direkt mit PHPUnit:
vendor/bin/phpunit
Debugging
Falls du Fehler analysieren willst, kannst du den Debug-Modus in .env
aktivieren:
APP_DEBUG=true
💪 Mitwirken
Pull Requests sind willkommen! Falls du ein Problem findest oder eine Verbesserung vorschlagen möchtest, erstelle einfach ein Issue oder eine PR.
🎉 Lizenz
Dieses Package ist unter der MIT-Lizenz veröffentlicht. Siehe die LICENSE
-Datei für weitere Details.
📊 Bleib auf dem Laufenden! Falls du Fragen oder Feedback hast, erstelle ein Issue oder kontaktiere uns. 🚀