iulyanp/sitemap-generator

网站地图生成库

v0.1.0 2017-05-29 12:22 UTC

This package is not auto-updated.

Last update: 2024-09-27 00:51:25 UTC


README

网站地图生成器

网站地图生成器是一个轻量级的PHP类,可以生成网站地图。

安装

$ composer require iulyanp/sitemap-generator

工作原理

XmlSitemapGenerator类可以生成xml格式的Google网站地图。

<?php

use Iulyanp\Sitemap\SitemapConfig;
use Iulyanp\Sitemap\XmlSitemapGenerator;

$config = new SitemapConfig('http://www.google.com', 'http://m.google.com/');
$sitemapGenerator = new XmlSitemapGenerator($config);

// generate some static links
$sitemapGenerator->addItem('/', '1.0', 'daily', 'now');
$sitemapGenerator->addItem('/about', '0.4', 'yearly', 'Jul 08');
$sitemapGenerator->addItem('/contact', '0.7', 'monthly', '11-11-2009');

// create the index sitemap for all generated sitemaps
$sitemapGenerator->createSitemapIndex();

SitemapGenerator需要一个SitemapConfig实例,它接受第一个参数为webDomain,可选第二个参数为mobileDomain。当你指定第二个参数时,所有网站地图项将包含一个移动元素。

你也可以指定

  • 保存网站地图的路径,使用`$config->setPath('/sitemaps/')
  • 生成网站地图的文件名,使用`$config->setFilename('sitemap')
  • 使用baseUrl,使用`$config->setBaseUrl('sitemap'),例如http://host.domain/{baseUrl}/{filename}
<?php

require_once './vendor/autoload.php';

use Iulyanp\Sitemap\SitemapConfig;
use Iulyanp\Sitemap\SitemapGeneratorInterface;
use Iulyanp\Sitemap\XmlSitemapGenerator;

class AppSitemap
{
    private $sitemapGenerator;

    public function __construct(SitemapGeneratorInterface $sitemapGenerator)
    {
        $this->sitemapGenerator = $sitemapGenerator;
    }
    
    public function generate()
    {
        // generate some static links
        $this->sitemapGenerator->addItem('/', '1.0', 'daily', 'now');
        $this->sitemapGenerator->addItem('/about', '0.8', 'monthly', 'Jun 25');
        $this->sitemapGenerator->addItem('/contact', '0.6', 'yearly', '14-12-2009');

        // create a DB query and dynamically generate the links
        for ($i = 0; $i <= 100000; $i++) {
            $this->sitemapGenerator->addItem('/products/' . $i . '/');
        }

        // create the index sitemap for all generated sitemaps
        $this->sitemapGenerator->createSitemapIndex();
    }
}

$config = new SitemapConfig('http://www.google.com', 'http://m.google.com/');
$config
    ->setPath('/testings/')
    ->setFilename('test')
    ->setBaseUrl('testing');
$sitemapGenerator = new XmlSitemapGenerator($config);

$app = new AppSitemap($sitemapGenerator);
$app->generate();

如果你扩展了XmlSitemapGenerator并重写了addOptionalTags方法,你还可以为每个网站地图项添加额外的标签。