dlapps/sitemap-bundle

为Symfony 3.2+项目提供生成网站地图的简单集成

安装: 18

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 7

分支: 0

类型:symfony-bundle

1.0.1 2017-01-08 23:48 UTC

This package is not auto-updated.

Last update: 2024-09-15 00:47:02 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score SensioLabsInsight Total Downloads

Sitemap包允许开发团队快速为PHP7包和基于Symfony 3.2+的项目添加生成网站地图的支持。

该包支持多种自定义参数、PSR-4自动加载,符合PSR-2规范,并通过自动化测试进行了充分测试,同时也在Dreamlabs生态系统的多个微服务中得到了应用。

安装

通过Composer

$ composer require dreamlabs/sitemap-bundle

在AppKernel中启用该包,文件位于:app/AppKernel.php

$bundles = [
    new DL\SitemapBundle\DLSitemapBundle(),
]

用法

为了生成网站地图,你需要生成一个网站地图定义的实例DL\SitemapBundle\Definition\Sitemap。该实例可以通过Sitemap::addResource()方法接受要添加的单独的网站地图资源。

为了帮助生成和验证网站地图资源,暴露了sitemap_resource_builder服务,如下例所示使用:

$container->get('sitemap_resource_builder')
    ->withTitle($title)
    ->withAbsoluteLocation($location)
    ->withLastModified($lastModified) # \DateTime
    ->withChangeFrequency(ChangeFrequencyEnum::WEEKLY)
    ->withPriority(0.5)
    ->build();

构建器将自动验证添加到网站地图的新资源,并确保

  • 所有字段都已提供。
  • 优先级在0和1之间。
  • 更改频率是有效的值。
  • 提供了位置的绝对URL。

构建器还公开了一个->withRelativeLocation($location)方法,可以与location_prefix配置参数一起使用,以从相对URL生成绝对路由。此功能是为了帮助解决代理通过错误配置的负载均衡器时可能不匹配的主机名。

假设location_prefix参数设置为https://example.com,调用->withRelativeLocation('/article/test')将生成绝对URLhttps://example.com//article/test

可以使用DL\SitemapBundle\Enum\ChangeFrequencyEnum类来定义严格的更改频率。可能的值包括

  • ChangeFrequencyEnum::ALWAYS
  • ChangeFrequencyEnum::HOURLY
  • ChangeFrequencyEnum::DAILY
  • ChangeFrequencyEnum::WEEKLY
  • ChangeFrequencyEnum::MONTHLY
  • ChangeFrequencyEnum::YEARLY
  • ChangeFrequencyEnum::NEVER

配置参考

以下配置参数也适用于该包

dl_sitemap:
    # The listener prefix, can be used in order to assist with the generation of absolute URLs from relative URLs.
    location_prefix: string # https://example.com

测试

$ composer test

PSR-2兼容性

$ composer check-styles
$ composer fix-styles

贡献

有关详细信息,请参阅CONTRIBUTINGCONDUCT

安全

如果您发现任何安全问题,请通过电子邮件petre [at] dreamlabs.ro联系,而不是使用问题跟踪器。

鸣谢

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件