webit / sitemap
Web-IT 网站地图库
2.0.0
2020-01-24 10:28 UTC
Requires
- php: >=5.6.0
- jms/serializer: ^1.0|^2.0
This package is auto-updated.
Last update: 2024-08-24 20:46:54 UTC
README
此库提供组件,用于根据 http://www.sitemaps.org 生成 sitemap.xml 文件。
安装
Composer: 将 webit/sitemap 添加到 composer.json
{ "require": { "php": ">=5.6.0", "webit/sitemap": "^2.0.0" } }
用法
准备你的 \Webit\Sitemap\Exposer\UrlExposerInterface 实现。它的方法 getUrlSet 必须返回一个 \Webit\Sitemap\UrlSet 对象的实例(这是一个用于 \Webit\Sitemap\Url 对象的容器)。
namespace MyProject; use Webit\Sitemap\Exposer\UrlExposerInterface; use Webit\Sitemap\UrlSet; use Webit\Sitemap\Url; class MyExposer implements UrlExposerInterface { /** * @return UrlSet */ public function getUrlSet() { $urlSet = new UrlSet(); $urlSet->addUrl(Url::create('http://my-project.domain/url-1')); $urlSet->addUrl(Url::create('http://my-project.domain/url-2')); $urlSet->addUrl(Url::create('http://my-project.domain/url-3')); // add urls you need return $urlSet; } }
配置 SitemapProvider 并生成网站地图
use Webit\Sitemap\Writer\SerializerUrlSetWriter; use Webit\Sitemap\Provider\SitemapProvider; /** @var \JMS\Serializer\SerializerInterface $serializer **/ $writer = new SerializerUrlSetWriter($serializer, sys_get_temp_dir()); $exposer = new MyProject\MyExposer(); $provider = new SitemapProvider($exposer, $writer, 7, '/dir/inside/your/project/can/be/webroot'); /** * Generate XML file (\SplFileInfo instance) */ $sitemapFile = $provider->getSitemap(); // if you need to force regeneration use $sitemapFile = $provider->getSitemap(true);