webit/sitemap

Web-IT 网站地图库

2.0.0 2020-01-24 10:28 UTC

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);