leama/sitemap-generator
最新稳定版本:1.1.1
Composer 安装命令:
composer require leama/sitemap-generator
包简介
Generate site map file by array of pages and extension
README 文档
README
Библиотека для генерации карты сайта в различных форматах с поддержкой валидации данных.
Поддерживаемые форматы
- XML (
xml) - JSON (
json) - CSV (
csv)
Особенности
- Валидация данных каждой страницы
- Проверка соответствия формата файла и генерации
- Поддержка различных форматов даты
- Гибкая настройка путей сохранения
- Автоматическое создание папок при необходимости
Установка
Установите библиотеку с помощью Composer:
composer require leama/sitemap-generator
Использование
1. Генерация карты сайта
use App\Application\SitemapGeneration\Enum\FormatEnum; use App\Application\SitemapGeneration\Exception\FormatException; use App\Infrastructure\SitemapGenerator\Exception\SitemapException; use App\Infrastructure\SitemapGenerator\SitemapGenerator; $pages = [ [ 'loc' => 'https://site.com/', 'lastmod' => '2024-07-23', 'priority' => 1.0, 'changefreq' => 'daily' ], ]; try { $sitemapGenerator = new SitemapGenerator($pages, SitemapGenerationFormat::CSV, 'path/to/file.csv'); $sitemapGenerator->generate(); echo 'File was generate successfully!'; } catch (FormatException|SitemapException $e) { echo "Ошибка: " . $e->getMessage(); }
2. Проверка валидации данных
use App\Application\SitemapGeneration\Enum\FormatEnum; use App\Application\SitemapGeneration\Exception\FormatException; use App\Infrastructure\SitemapGenerator\Exception\SitemapException; use App\Infrastructure\SitemapGenerator\SitemapGenerator; $pages = [ [ 'loc' => 'site', // Неверный формат 'lastmod' => '2024-06-29', 'priority' => 1.0, 'changefreq' => 'tomorrow' ] ]; // Инициализация...
Результат:
Invalid URL format in 'loc' field for page 0
use App\Application\SitemapGeneration\Enum\FormatEnum; use App\Application\SitemapGeneration\Exception\FormatException; use App\Infrastructure\SitemapGenerator\Exception\SitemapException; use App\Infrastructure\SitemapGenerator\SitemapGenerator; $pages = [ [ 'loc' => 'https://site.com/', 'lastmod' => '23.07.2024', // Неверный формат 'priority' => 1.0, 'changefreq' => 'tomorrow' ] ]; // Инициализация...
Результат:
Invalid date format in 'lastmod' for page 0. Use YYYY-MM-DD
use App\Application\SitemapGeneration\Enum\FormatEnum; use App\Application\SitemapGeneration\Exception\FormatException; use App\Infrastructure\SitemapGenerator\Exception\SitemapException; use App\Infrastructure\SitemapGenerator\SitemapGenerator; $pages = [ [ 'loc' => 'https://site.com/', 'lastmod' => '2024-07-23', 'priority' => 1.2, // Ошибка: priority должен быть от 0.0 до 1.0 'changefreq' => 'daily' ] ]; // Инициализация...
Результат:
'priority' must be between 0.0 and 1.0 in page 0
Доступны следующие варианты частоты обновления:
- hourly
- daily
- weekly
- monthly
- yearly
- never
Указаны в ChangeFreqEnum.php.
use App\Application\SitemapGeneration\Enum\FormatEnum; use App\Application\SitemapGeneration\Exception\FormatException; use App\Infrastructure\SitemapGenerator\Exception\SitemapException; use App\Infrastructure\SitemapGenerator\SitemapGenerator; $pages = [ [ 'loc' => 'https://site.com/', 'lastmod' => '2024-07-23', 'priority' => 1.0, 'changefreq' => 'tomorrow' // Ошибка ] ]; // Инициализация...
Результат:
Invalid 'changefreq' value in page 0. Valid values: hourly, daily, weekly, monthly, yearly, never
use App\Application\SitemapGeneration\Enum\FormatEnum; use App\Application\SitemapGeneration\Exception\FormatException; use App\Infrastructure\SitemapGenerator\Exception\SitemapException; use App\Infrastructure\SitemapGenerator\SitemapGenerator; $pages = []; try { $sitemapGenerator = new SitemapGenerator($pages, SitemapGenerationFormat::CSV, 'path/to/file.xml'); $sitemapGenerator->generate(); print 'File was generate successfully!'; } catch (FormatException|SitemapException $e) { print $e->getMessage(); }
Результат:
The file format does not match the generation format
统计信息
- 总下载量: 3
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2025-06-29