fdevs/sitemap

用于生成网站地图的库

0.1.1 2016-06-17 11:03 UTC

This package is auto-updated.

Last update: 2024-08-28 18:54:02 UTC


README

Build Status

网站地图

使用Sitemaps XML格式来生成网站地图

如果您使用Symfony 2,可以使用我们的网站地图桥接器网站地图包

安装

Sitemap使用Composer,请访问Composer网站获取更多信息。

以下简单命令将安装sitemap到您的项目中。它还会在您的composer.json中添加新条目并更新composer.lock

composer require fdevs/sitemap

使用示例

创建适配器

<?php

namespace FDevs\App\Sitemap\Adapter;

use FDevs\Sitemap\Adapter\AbstractAdapter;

class StaticRouting extends AbstractAdapter
{
    /**
     * @param string $name
     * @param array  $params
     * @param mixed  $item
     *
     * @return Url|null
     */
    public function createUrl($name, array $params = [], $item)
    {

    }

    /**
     * @param array $params
     *
     * @return \Iterator
     */
    public function getItemList(array $params = [])
    {

    }

}

使用UrlSet

use FDevs\Sitemap\Factory\UrlSet;
use FDevs\Sitemap\Util\Params;

$urlset = new UrlSet();

// your params for the uri
$params = [
    ['_locale' => 'ru', '_format' => 'html'],
    ['_locale' => 'en', '_format' => 'html'],
    ['_locale' => 'ru', '_format' => 'rss'],
    ['_locale' => 'en', '_format' => 'rss'],
];

echo $urlset->xmlString($params);
//<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url><loc>http://4devs.io/ru</loc><priority>0.7</priority></url></urlset>

//or save sitemap
$urlset->saveFile('/full/path/to/sitemap.xml',$params);

使用SiteMapIndex

use FDevs\Sitemap\Factory\SiteMapIndex;

$index = new SiteMapIndex('http://domain.ltd','/full/path/to/web/dir');

// your params for the uri
$params = [
    ['_locale' => 'ru', '_format' => 'html'],
    ['_locale' => 'en', '_format' => 'html'],
];

echo $index->xmlString($params);
//<?xml version="1.0" encoding="UTF-8"?><sitemapindex><sitemap><loc>http://domain.ltd/ru.html.sitemap.xml</loc></sitemap><sitemap><loc>http://domain.ltd/en.html.sitemap.xml</loc></sitemap></sitemapindex>

//or save sitemap
$index->saveFile('/full/path/to/sitemap.xml',$params);

使用Params辅助器

use FDevs\Sitemap\Util\Params;
$params = Params::prepare(['_locale'=>['ru','en'],'_format'=>['html','rss']])
//output
//$params = [
//    ['_locale' => 'ru', '_format' => 'html'],
//    ['_locale' => 'en', '_format' => 'html'],
//    ['_locale' => 'ru', '_format' => 'rss'],
//    ['_locale' => 'en', '_format' => 'rss'],
//];

使用网站地图管理器

use FDevs\Sitemap\SitemapManager;
use FDevs\Sitemap\Factory\SiteMapIndex;
use FDevs\Sitemap\Factory\UrlSet;
use FDevs\Sitemap\Util\Params;

$index = new SiteMapIndex('http://domain.ltd','/full/path/to/web/dir');
$urlset = new UrlSet();
$params = Params::prepare(['_locale'=>['ru','en'],'_format'=>['html','xml']])

$manager = new SitemapManager();
$manager
    ->add($urlset)
    ->add($index);

$manager->get('index')->xmlString($params);
$manager->get('index')->saveFile('/full/path/to/sitemap.xml',$params);

$manager->get('sitemap')->xmlString($params);
$manager->get('sitemap')->saveFile('/full/path/to/sitemapindex.xml',$params);

4devs创建 - 查看我们的博客,了解更多关于这个及其他开源项目的细节。