dlapps / sitemap-bundle
为Symfony 3.2+项目提供生成网站地图的简单集成
Requires
- php: ^7.0
- jms/serializer-bundle: ^1.1
- symfony/symfony: ^3.2
Requires (Dev)
- phpunit/phpunit: ^5.5
- squizlabs/php_codesniffer: ^2.7
This package is not auto-updated.
Last update: 2024-09-15 00:47:02 UTC
README
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
贡献
有关详细信息,请参阅CONTRIBUTING和CONDUCT。
安全
如果您发现任何安全问题,请通过电子邮件petre [at] dreamlabs.ro联系,而不是使用问题跟踪器。
鸣谢
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。