envytek / sitemap-generator
网站地图和网站地图索引构建器
v1.0.4
2021-01-19 10:32 UTC
Requires
- php: >=7.1.0
- ext-xmlwriter: *
Requires (Dev)
- phpunit/phpunit: ~7.1.5
This package is auto-updated.
Last update: 2024-09-29 05:49:04 UTC
README
多语言网站地图构建器。
特性
- 创建网站地图文件:常规或gzip压缩。
- 支持网站地图扩展。包含的扩展有多语言网站地图、视频/图片网站地图。
- 创建网站地图索引文件。
- 当达到URL限制或文件大小限制时,自动创建新文件。
- 快速且内存高效。
安装
通过Composer安装非常简单
composer require EnvyTek/
composer require EnvyTek/sitemap:dev-master
之后,确保您的应用程序通过包含vendor/autoload.php
来自动加载Composer类。
如何使用它
use EnvyTek\Sitemap\Sitemap; use EnvyTek\Sitemap\Index; // create sitemap $sitemap = new Sitemap(__DIR__ . '/sitemap.xml'); // add some URLs $sitemap->addUrl(new Url('http://example.com/mylink1')); $sitemap->addUrl( (new Url('http://example.com/mylink2')) ->setLastModified(new \DateTime()) ); $sitemap->addUrl( (new Url('http://example.com/mylink3')) ->setLastModified(new \DateTime()) ->setChangeFrequency(Frequency::HOURLY) ); $sitemap->addUrl( (new Url('http://example.com/mylink4')) ->setChangeFrequency(Frequency::DAILY) ->setLastModified(new \DateTime()) ->setPriority(0.3) ); // write it $sitemap->write(); // get URLs of sitemaps written $sitemapFileUrls = $sitemap->getSitemapUrls('http://example.com/'); // create sitemap for static files $staticSitemap = new Sitemap(__DIR__ . '/sitemap_static.xml'); // add some URLs $staticSitemap->addUrl(new Url('http://example.com/about')); $staticSitemap->addUrl(new Url('http://example.com/tos')); $staticSitemap->addUrl(new Url('http://example.com/jobs')); // write it $staticSitemap->write(); // get URLs of sitemaps written $staticSitemapUrls = $staticSitemap->getSitemapUrls('http://example.com/'); // create sitemap index file $index = new Index(__DIR__ . '/sitemap_index.xml'); // add URLs foreach ($sitemapFileUrls as $sitemapUrl) { $index->addSitemap($sitemapUrl); } // add more URLs foreach ($staticSitemapUrls as $sitemapUrl) { $index->addSitemap($sitemapUrl); } // write it $index->write();
多语言网站地图
use EnvyTek\Sitemap\Sitemap; // create sitemap declaring you need alternate links support $sitemap = new Sitemap(__DIR__ . '/sitemap_multi_language.xml', [AlternateLink::class]); // add some URLs $sitemap->addUrl( (new Url('http://example.com/en/mylink2')) ->setLastModified(new \DateTime()) ->setChangeFrequency(Frequency::HOURLY) ->add(new AlternateLink('en', 'http://example.com/en/mylink1')) ->add(new AlternateLink('ru', 'http://example.com/ru/mylink1')) ); $sitemap->addUrl( (new Url('http://example.com/en/mylink2')) ->setLastModified(new \DateTime()) ->setChangeFrequency(Frequency::HOURLY) ->add(new AlternateLink('en', 'http://example.com/en/mylink2')) ->add(new AlternateLink('ru', 'http://example.com/ru/mylink2')) ); // write it $sitemap->write();
选项
有方法可以配置Sitemap
实例
setMaxUrls($number)
。设置单个文件中要写入的最大URL数量。默认是50000,这是根据规范和大多数现有实现的限制。setMaxBytes($number)
。设置单个网站地图文件的最大大小。默认是10MiB,应与大多数当前搜索引擎兼容。setBufferSize($number)
。设置写入文件前保留在内存中的URL数量。默认是10。较大的值有微小的优势。另一方面,当达到文件大小限制时,必须将整个缓冲区写入下一个文件。setUseIndent($bool)
。设置XML是否应该缩进。默认是true。setUseGzip($bool)
。设置生成的网站地图文件是否进行gzip压缩。默认是false
。必须启用zlib
扩展才能使用此功能。
有一个方法可以配置Index
实例
setUseGzip($bool)
。设置生成的索引文件是否进行gzip压缩。默认是false
。必须启用zlib
扩展才能使用此功能。
运行测试
为了运行测试,请执行以下命令
composer install
./vendor/bin/phpunit