fdevs / sitemap
用于生成网站地图的库
0.1.1
2016-06-17 11:03 UTC
Requires
- php: >=5.4
Suggests
- fdevs/sitemap-bridge: use with symfony components
- fdevs/sitemap-bundle: use with symfony bundle
README
网站地图
使用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);