定制 tasmir/sitemap 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

tasmir/sitemap

最新稳定版本:v1.0.0

Composer 安装命令:

composer require tasmir/sitemap

包简介

A standalone Laravel package for generating dynamic XML sitemaps.

README 文档

README

A powerful, universal, and developer-friendly sitemap generator for Laravel. Automatically index your static routes, map your models, and generate sitemaps with professional features like progress bars and auto-indexing for large sites.

Features

  • 🚀 Automated Route Collection: Automatically discovers and indexes your public, static GET routes.
  • ✨ Sitemapable Trait: Give your models the ability to manage their own sitemap metadata.
  • 🏢 Sitemap Indexing: Automatically splits large sitemaps (50k+ URLs) and generates a sitemap.xml index.
  • 📦 Configuration-Driven: Easily map models to routes without writing code.
  • 🎩 Sitemap Facade: Simple programmatic access from anywhere in your app.
  • 🎨 Blade Templates: Fully customizable XML output using Blade views.
  • 📉 Progress Bars: Real-time feedback in the terminal during generation.

Installation

  1. Add the package to your composer.json or install via composer (if published):

    composer require tasmir/sitemap
  2. The service provider will be auto-discovered. If not, add it to config/app.php:

    Tasmir\Sitemap\Providers\SitemapServiceProvider::class,
  3. Publish the configuration:

    php artisan vendor:publish --tag=sitemap-config

Configuration

Edit config/sitemap.php to customize the behavior:

Automated Route Collection

Set auto_collect_static_routes to true to index all static GET routes that don't require parameters and aren't protected by auth.

'auto_collect_static_routes' => true,
'exclude_routes' => ['admin.*', 'login', 'register'],

Sitemapable Models

Add models that use the Tasmir\Sitemap\Traits\Sitemapable trait here:

'sitemapable_models' => [
    \App\Models\Blog::class,
],

Usage

Using the Trait

Add the Sitemapable trait to your model and optionally override getSitemapLoc():

use Tasmir\Sitemap\Traits\Sitemapable;

class Blog extends Model {
    use Sitemapable;

    public function getSitemapLoc(): string {
        return route('blog.show', $this->slug);
    }
}

Using the Facade

You can manually add URLs from anywhere:

use Tasmir\Sitemap\Facades\Sitemap;

Sitemap::addUrl(url('/special-page'), now()->toAtomString(), 'weekly', '0.9');

Commands

Generate your sitemap manually:

php artisan sitemap:generate

The sitemap is generated at public/sitemap.xml.

Automation

The package includes built-in scheduling. You can customize the frequency, time, and timezone in config/sitemap.php:

'schedule_enabled' => true,
'schedule_timezone' => 'Asia/Dhaka',
'schedule_method' => 'dailyAt',
'schedule_time' => '00:01',

Ensure your Laravel scheduler is running in your crontab:

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

The MIT License (MIT). Please see License File for more information.

统计信息

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

GitHub 信息

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

其他信息

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

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固