mima / sitemap-generator
为您的网站创建和写入sitemap.xml的库
v1.0.2
2016-09-27 15:53 UTC
Requires
- php: >=5.5
Requires (Dev)
- phpunit/phpunit: ^4.8.0
This package is auto-updated.
Last update: 2024-09-13 23:26:21 UTC
README
生成sitemap.xml的库。易于使用且非常可扩展。它允许您创建自定义数据源。
安装
使用命令行通过composer安装
composer require mima/sitemap-generator
或者将依赖项添加到composer.json中的require部分
{ "require": { "mima/sitemap-generator": "~1.0" } }
使用方法
要开始,您必须创建数据提取器。为此,定义一个继承自SitemapRenderer\Extractor\DataExtractorInterface
的子类。
例如,我们创建以下数据提取器
namespace MyNamespace\SitemapGenerator\Extractor; use SitemapGenerator\Extractor\DataExtractorInterface; use SitemapGenerator\Entity\SitemapItem; class FromArrayDataExtractor implements DataExtractorInterface { /** * This method return \Generator, which at each iteration returns instance of SitemapItem * * @return |Generator */ public function extractData() { // load data and each them foreach ($this->loadData() as $data) { // create instance of SitemapItem based on loaded data $item = new SitemapItem('/page-'.$data['id'], new \DateTime($data['created_at'])); // return this instance yield $item; } } /** * Load data from array, as samle. * It can be a database query, or query to external API. * * @return array */ protected function loadData() { return [ [ 'id' => 1, 'created_at' => '2016-09-12 00:00:00' ], [ 'id' => 2, 'created_at' => '2016-09-12 03:40:00' ] ]; } }
现在我们可以生成一个sitemap.xml
use SitemapGenerator\Factory\SimpleGeneratorFactory; use MyNamespace\SitemapGenerator\Extractor\FromArrayDataExtractor; /** * This is a directory, where the sitemap will be saved. * It must exist in the file system and be available for recording. */ $directoryToSaveSitemap = './web'; // Create instance of extractor, which we defined earlier $extractor = new FromArrayDataExtractor(); // Create instance of factory for simple sitemap generator $simpleGeneratorFactory = new SimpleGeneratorFactory(); // Create generator by factory $generator = $simpleGeneratorFactory->createGenerator($directoryToSaveSitemap); /** * Generate sitemap by data, which return extractor. * This method return path to generated file. */ $filePath = $generator->generate($extractor);