ayom413/sitemap-generator

SitemapGenerator 是一个库,允许您从数据数组中生成 .xml、.json 和 .csv 文件

dev-main 2023-08-30 18:05 UTC

This package is auto-updated.

Last update: 2024-09-30 01:46:46 UTC


README

SitemapGenerator 是一个库,允许您从数据数组中生成 .xml、.json 和 .csv 文件。

安装

您可以直接从 Github 下载此库,或者通过使用 composer。下载的 composer 命令:composer require ayom413/sitemap-generator:dev-main。之后,在您的 PHP 文件中包含 SitemapGenerator 类

require_once './SitemapGenerator/SitemapGenerator.php';

用法

首先,您需要为页面数据创建数据数组、您想要生成的文件类型以及文件路径。之后,您需要创建 SitemapGenerator 类的新实例。

$page = [
    [
        'loc' => 'https://site.ru/news',
        'lastmod' => '2020-12-14',
        'priority' => '1',
        'changefreq' => 'hourly',
    ],
    ];
$fileType = "json"; // or "csv", or "xml"
$filePath = "./sitemap_location";
$generator = new SitemapGenerator($page, $fileType, $filePath);

最后,调用 generate() 方法来创建站点地图

$generator->generation();
print_r($generator);

类结构

该库由多个类和接口组成:SitemapGenerator 类是负责生成站点地图的主要类。

Generator 是一个抽象类,它定义了站点地图生成器的生成方法。

DataGeneratorCsvGeneratorJsonGeneratorXmlGenerator 类实现了主要的站点地图生成。

ValidateData 类包含验证输入数据、文件类型和文件路径的方法。

InvalidDataInvalidDataTypeInvalidFilePath 类是库在输入无效或使用不当的情况下抛出的异常。

示例

<?php

use SitemapGenerator\SitemapGenerator;

require 'vendor\autoload.php';

$page = [
    [
        'loc' => 'https://site.ru/news',
        'lastmod' => '2020-12-14',
        'priority' => '1',
        'changefreq' => 'hourly',
    ],
    [
        'loc' => 'https://site.ru/about',
        'lastmod' => '2020-12-07',
        'priority' => '0.6',
        'changefreq' => 'weekly',
    ],
    [
        'loc' => 'https://site.ru',
        'lastmod' => '2020-12-09',
        'priority' => '0.1',
        'changefreq' => 'daily',
    ],
];

$fileType = 'json';
$fPath = '/result/test/sitemap';
$generator = new SitemapGenerator($page, $fileType, $fPath);
$generator->generation();
print_r($generator->generation());

$fileType = 'csv';
$fPath = '/result/test/sitemap';
$generator = new SitemapGenerator($page, $fileType, $fPath);
$generator->generation();
print_r($generator->generation());

$fileType = 'xml';
$fPath = '/result/test/sitemap';
$generator = new SitemapGenerator($page, $fileType, $fPath);
$generator->generation();
print_r($generator->generation());

print_r('Sitemap is ready!');

许可

此库在 Apache-2.0 许可下分发。