Генератор Sitemap на PHP

Схема карты сайта с соединёнными страницами

Небольшая библиотека, которую я сделал для формирования XML-карты сайта. Передаю ей адреса страниц и даты изменения, а она собирает Sitemap, который можно сохранить в файл или отдать по HTTP.

Схема карты сайта с соединёнными страницами
Карта сайта собирает адреса страниц в единую структуру.

Для чего она нужна

В приложении часто уже есть список страниц: записи в базе данных, материалы вики или маршруты. Остаётся превратить его в XML. Для этой задачи и пригодится генератор: список адресов передаёт само приложение.

У каждой страницы можно указать дату изменения, частоту обновления и приоритет. Последние два параметра необязательны; их значения по умолчанию задаются при создании генератора.

Установка

Пакет называется ichinya/sitemap-generator и устанавливается через Composer:

composer require ichinya/sitemap-generator

В требованиях пакета указана версия PHP от 7.4. Актуальные исходники и инструкцию можно посмотреть в репозитории.

Пример использования

<?php
require __DIR__ . '/vendor/autoload.php';

use Ichinya\SitemapGenerator\Sitemap;

$sitemap = new Sitemap('weekly', 0.5);
$sitemap->addUrl('https://example.com/', time());
$sitemap->addUrl(
    'https://example.com/about',
    strtotime('2026-10-01'),
    'monthly',
    0.3
);

header('Content-Type: application/xml; charset=utf-8');
echo $sitemap->render();

Метод render() возвращает XML строкой. Его можно отдать посетителю, как в примере, или записать в файл. Есть и вариант render(true), который сразу выводит результат с заголовком XML и завершает выполнение.

Текущее состояние

Библиотека опубликована, её исходники доступны по лицензии MIT. Это небольшой отдельный инструмент для генерации карты сайта; источник списка страниц и запуск обновления Sitemap настраиваются в самом приложении.

Исходники и README на GitHub · Все мои проекты.

Поделиться с друзьями
Блог Ичи