承接 ithilbert/sitemap 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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: priority zwingend 0.0–1.0, changefreq als 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 我们能提供哪些服务?
定制开发 / 二次开发

基于 ithilbert/sitemap 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 61
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 19
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-03-06