ithilbert/sitemap
Composer 安装命令:
composer require ithilbert/sitemap
包简介
Sitemap-Generator für Laravel – Routen werden direkt als Sitemap-Einträge deklariert.
关键字:
README 文档
README
Laravel-Package zur einfachen Verwaltung und Generierung von XML-Sitemaps direkt aus der Route-Definition.
Features
- Routen direkt als Sitemap-Einträge deklarieren (Macro
->sitemap()) - Fluente API:
priority(),changefreq(),lastmod(),file() - Mehrere Sitemap-Dateien parallel generieren
- Dynamische Einträge via Generator-Callback (DB-Chunking-tauglich)
- Konfigurierbare Standardwerte (Priority, Changefreq, Lastmod, Url-Base)
- Saubere XML-Erzeugung via
XMLWriter(korrektes Escaping) - Validation:
priorityzwingend 0.0–1.0,changefreqals Enum - Parameter-Routen (
/blog/{slug}) werden automatisch übersprungen - Artisan-Command
sitemap:generate(optional mit--path=)
Installation
composer require ithilbert/sitemap
php artisan vendor:publish --tag=sitemap-config # optional
Service Provider und Facade werden automatisch über Laravel Package-Discovery registriert.
Verwendung
Routen deklarieren
use ITHilbert\Sitemap\Enums\Changefreq; // 1. Standardwerte aus Config Route::get('/blog', [BlogController::class, 'index']) ->name('blog') ->sitemap(); // 2. Array-Syntax Route::get('/impressum', [PageController::class, 'impressum']) ->sitemap(['priority' => '0.3', 'changefreq' => 'yearly']); // 3. Fluente Syntax (mit Validation) Route::get('/kontakt', [PageController::class, 'kontakt']) ->sitemap() ->priority('0.5') ->changefreq(Changefreq::Monthly); // 4. Andere Ziel-Datei (String-Syntax) Route::get('/laravel-guide', [PageController::class, 'laravel']) ->sitemap('laravel-sitemap.xml'); // 5. Fluente Syntax mit Datei Route::get('/laravel-advanced', [PageController::class, 'advanced']) ->sitemap() ->file('laravel-sitemap.xml') ->priority('0.8');
Routen mit URL-Parametern (/blog/{slug}) erscheinen nicht in der statischen Sitemap — dynamische URLs gehören in einen Generator (siehe unten).
Sitemap generieren
php artisan sitemap:generate php artisan sitemap:generate --path=/custom/path
Dynamische Einträge (z. B. aus der Datenbank)
Für zehntausende Einträge nicht in web.php registrieren, sondern erst beim sitemap:generate-Aufruf aus der DB laden:
use ITHilbert\Sitemap\Facades\Sitemap; use App\Models\Landingpage; public function boot(): void { Sitemap::addGenerator(function () { $entries = []; Landingpage::chunk(1000, function ($pages) use (&$entries) { foreach ($pages as $page) { $entries[] = [ 'url' => url('/berater/' . $page->slug), 'lastmod' => $page->updated_at, // Carbon, DateTime, string oder null 'priority' => '0.8', 'changefreq' => 'weekly', // 'file' => 'landingpages.xml', // optional ]; } }); return $entries; }); }
Akzeptierte lastmod-Typen: string (ISO 8601), bool (true=heute), Carbon\CarbonInterface, DateTimeInterface, null.
Konfiguration (config/sitemap.php)
return [ 'default_filename' => 'sitemap.xml', 'default_priority' => '0.5', // 0.0 – 1.0 'default_changefreq' => 'monthly', // always|hourly|daily|weekly|monthly|yearly|never 'default_lastmod' => true, // true=heute, false=keins, string=fix 'url_base' => env('APP_URL'), ];
Struktur
packages/lv-sitemap/
├── composer.json
├── README.md
├── LICENSE
├── src/
│ ├── SitemapServiceProvider.php
│ ├── Builders/SitemapRouteBuilder.php # Fluente API + Validation
│ ├── Commands/SitemapGenerateCommand.php
│ ├── Config/sitemap.php
│ ├── Data/SitemapEntry.php # Readonly DTO
│ ├── Enums/Changefreq.php
│ ├── Facades/Sitemap.php
│ ├── Macros/RouteSitemapMacro.php
│ └── Services/SitemapService.php # Kern-Logik + XMLWriter
└── tests/
├── Unit/ # Enum, DTO
└── Feature/ # Service, Builder, Command
Lizenz
MIT – siehe LICENSE
ithilbert/sitemap 适用场景与选型建议
ithilbert/sitemap 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 61 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 03 月 06 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「Sitemap」 「laravel」 「it-hilbert」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 ithilbert/sitemap 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 ithilbert/sitemap 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 ithilbert/sitemap 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Symfony sitemap generator
PHP Simple Sitemap Generator
Interfaces for web resource models and services to retrieve and create them
Sitemap crawler/generator. For the given URL it will return sitemap XML file with URLs and images.
Sitemap and sitemap index builder for Jigsaw.
Sitemap for seo
统计信息
- 总下载量: 61
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 19
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-03-06