jeroendesloovere / sitemap
用于生成(一个或多个)Sitemap和SitemapIndex的库。
1.0.1
2022-04-07 07:50 UTC
Requires
- php: >=7.1
Requires (Dev)
- mikey179/vfsstream: ^1.6
- phpunit/phpunit: ^6.5
- squizlabs/php_codesniffer: ^3.2
README
此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许可。简而言之,此许可证允许您做任何事情,只要版权声明保持存在。