scarlet/sitemap-generator

A library for generating sitemaps in XML, CSV, and JSON formats.

2.0.0 2025-03-07 05:55 UTC

This package is auto-updated.

Last update: 2025-07-07 06:46:05 UTC


README

Описание

Sitemap Generator - это PHP-библиотека для генерации карты сайта в форматах XML, CSV и JSON. Поддерживает валидацию входных данных и обработку ошибок.

Возможности

  • Генерация карты сайта в XML, CSV, JSON
  • Создание директорий при отсутствии
  • Исключения при ошибках (невалидные данные, ошибки записи в файл, неподдерживаемый формат)

Установка

Библиотека доступна через Composer:

composer require scarlet/sitemap-generator

Использование

Пример кода

require_once __DIR__ . '/vendor/autoload.php';

use Vendor\SitemapGenerator\SitemapGenerator;
use Vendor\SitemapGenerator\Exceptions\InvalidDataException;
use Vendor\SitemapGenerator\Exceptions\FileWriteException;
use Vendor\SitemapGenerator\Exceptions\UnsupportedFormatException;
use Vendor\SitemapGenerator\Exceptions\DuplicateUrlException;

$urls = [
    [
        'loc' => 'https://site.ru/',
        'lastmod' => '2020-12-14',
        'priority' => 1.0,
        'changefreq' => 'hourly'
    ]
];

try {
    $generator = new SitemapGenerator('xml', __DIR__ . '/sitemaps/sitemap.xml');
    $generator->generate($urls);
    echo "Карта сайта успешно создана!";
} catch (InvalidDataException | FileWriteException | UnsupportedFormatException | DuplicateUrlException $e) {
    echo "Ошибка: " . $e->getMessage();
}

Тестирование

Для запуска тестов используйте PHPUnit:

vendor/bin/phpunit tests

Структура проекта

sitemap-generator/
├── src/
│   ├── SitemapGenerator.php
│   ├── Interface/
│   │   ├── SitemapFormatterInterface.php
│   ├── Formatters/
│   │   ├── XmlSitemapFormatter.php
│   │   ├── CsvSitemapFormatter.php
│   │   ├── JsonSitemapFormatter.php
│   ├── Exceptions/
│   │   ├── DuplicateUrlException.php
│   │   ├── InvalidDataException.php
│   │   ├── FileWriteException.php
│   │   ├── UnsupportedFormatException.php
├── tests/
│   ├── SitemapGeneratorTest.php
│   ├── XmlSitemapFormatterTest.php
│   ├── CsvSitemapFormatterTest.php
│   ├── JsonSitemapFormatterTest.php
├── composer.json
├── README.md
├── .gitignore
├── LICENSE

Лицензия

MIT License