用于生成(一个或多个)Sitemap和SitemapIndex的库。

1.0.1 2022-04-07 07:50 UTC

This package is auto-updated.

Last update: 2024-09-07 13:06:25 UTC


README

Latest Stable Version License Build Status Scrutinizer Code Quality

此Symfony扩展包允许您轻松生成sitemapindex以及一个或多个sitemap。

待办功能

需要做什么

  • 生成“sitemap provider last modified on datetime”,这是我们需要在sitemapindex中显示的。

用法

安装

composer require jeroendesloovere/sitemap

示例:“如何创建自定义sitemap?”

我们需要通知Symfony我们已经有一个新的sitemap provider。在您的services.yaml中添加以下内容:

services:
    App\SitemapProviders\NewsArticleSitemapProvider:
        tags:
            - { name: sitemap.provider }

SitemapGenerator需要生成sitemap时,它将要求所有SitemapProvider填写项。在您的应用程序中创建如下内容:

<?php

namespace App\SitemapProviders;

use JeroenDesloovere\Sitemap\Item\ChangeFrequency;
use JeroenDesloovere\Sitemap\Provider\SitemapProvider;
use JeroenDesloovere\Sitemap\Provider\SitemapProviderInterface;

class NewsArticleSitemapProvider extends SitemapProvider implements SitemapProviderInterface
{
    /** @var NewsArticleRepository */
    private $articleRepository;

    public function __construct(NewsArticleRepository $articleRepository)
    {
        $this->articleRepository = $articleRepository;

        // `NewsArticle::class` would even be better then just `NewsArticle`
        // because you can then use it with doctrine events.
        parent::__construct('NewsArticle');
    }

    public function createItems(): void
    {
        /** @var Article[] $articles */
        $articles = $this->articleRepository->findAll();
        foreach ($articles as $article) {
            $this->createItem('/nl/xxx/url-to-article', $article->getEditedOn(), ChangeFrequency::monthly());
        }
    }
}

现在您可以通过以下命令生成sitemap:

SitemapGenerator->generate()

使用cronjob(例如每小时一次)以保持sitemap更新。

文档

类具有良好的内联文档。如果您使用了一个不错的IDE,您会看到每个方法都用PHPDoc进行了注释。

贡献

欢迎贡献,并且将完全归功于您。

拉取请求

添加或更新代码

  • 编码语法 - 请保持代码语法与包中的其余部分一致。
  • 添加单元测试! - 如果您的补丁没有测试,则不会接受。
  • 记录任何行为变更 - 确保README和任何其他相关文档保持最新。
  • 考虑我们的发布周期 - 我们尝试遵循semver。随机破坏公共API不是可选项。
  • 创建主题分支 - 不要要求我们从您的master分支中拉取。
  • 每个功能一个拉取请求 - 如果您想做更多的事情,请发送多个拉取请求。
  • 发送连贯的历史记录 - 确保您的拉取请求中的每个单独提交都具有重要意义。如果您在开发过程中必须做出多个中间提交,请在提交之前将它们压缩。

问题

有关错误报告或代码讨论。

有关如何在帮助.github.com上与GitHub一起工作的更多信息。

编码语法

我们使用squizlabs/php_codesniffer来维护代码标准。键入以下内容以执行它们:

# To view the code errors
vendor/bin/phpcs --standard=psr2 --extensions=php --warning-severity=0 --report=full "src"

# OR to fix the code errors
vendor/bin/phpcbf --standard=psr2 --extensions=php --warning-severity=0 --report=full "src"

阅读有关代码标准的文档

单元测试

我们内置了测试,键入以下内容以执行它们

vendor/bin/phpunit tests

鸣谢

许可

本模块采用MIT许可。简而言之,此许可证允许您做任何事情,只要版权声明保持存在。