PHPackages                             sitemaps/sitemap - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. sitemaps/sitemap

ActiveLibrary

sitemaps/sitemap
================

Library that provides generating of sitemap files used by yandex, google etc

025PHP

Since Jan 14Pushed 12y ago1 watchersCompare

[ Source](https://github.com/mapshub/sitemaps)[ Packagist](https://packagist.org/packages/sitemaps/sitemap)[ RSS](/packages/sitemaps-sitemap/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Sitemaps
========

[](#sitemaps)

**Генеатор файлов sitemap**

Для правильной генерации файлов sitemap, как этого требует яндекс:

- с разбивкой на файлы размером не более 10Mb
- количеством url в каждом файле не более 50000

**Установка**

Для установки добавьте sitemaps/sitemap в файл composer.json в вашем проекте.

*Например:*

```
{
    "require": {
        "sitemaps/sitemap": "dev-master"
    }
}

```

**Принцип работы**

URL-ы нужно добавлять во временное хранилище до создания полного списка, а потом запустить генератор файлов. Генератор создаст файл типа "sitemapindex" и столько файлов типа "urlset" сколько потребуется, в соответствии с указанными выше требованиями. Генератору для работы требуется указать путь к папке, в которую сохранять сгенерированные файлы, и URL этой папки чтобы формировать url-ы для скачивания файлов sitemap по http.

*outputDir* - папка для хранения

*baseUrl* - базовый url для скачивания

**Примеры**

*Пример с хранением временных данных в массиве PHP*

```
public function testBuilderWithArrayStorage()
{
    //для каждoго сайта свой Id
    $site_id = "com_example_array_storage";

    $sm = new \Sitemaps\Sitemap($site_id);

    $arrayStorage = new \Sitemaps\Storage\ArrayStorage\Storage();
    $sm->setStorage($arrayStorage);

    $builder = new \Sitemaps\Builder\XMLWriter\Builder();
    $builder->setOutputDir(__DIR__ . "/" . self::test_output_dir);
    $builder->setBaseUrl("http://example.com/sitemap/");
    $sm->setBuilder($builder);

    $total = 2000;

    for ($i = 0; $i < $total; $i++) {
        $sm->addLocation("http://example.com/catalog/pages/{$i}/", new \DateTime("now"));
    }

    $sm->getBuilder()->build();
}

```

Данный тип используется по-умолчанию, поэтому можно явно setStorage не делать.

```
public function testBuilderWithArrayStorage()
{
    //для каждoго сайта свой Id
    $site_id = "com_example_array_storage";

    $sm = new \Sitemaps\Sitemap($site_id);

    $builder = new \Sitemaps\Builder\XMLWriter\Builder();
    $builder->setOutputDir(__DIR__ . "/" . self::test_output_dir);
    $builder->setBaseUrl("http://example.com/sitemap/");
    $sm->setBuilder($builder);

    $total = 2000;

    for ($i = 0; $i < $total; $i++) {
        $sm->addLocation("http://example.com/catalog/pages/{$i}/", new \DateTime("now"));
    }

    $sm->getBuilder()->build();
}

```

*Пример с хранением временных данных в MongoDB*

```
public function testBuilderWithMongoDBStorage()
{
    //для каждoго сайта свой Id
    $site_id = "example_mongo_storage";

    $sm = new \Sitemaps\Sitemap($site_id);

    $mongoStorage = new \Sitemaps\Storage\Mongo\Storage();
    $sm->setStorage($mongoStorage);

    $builder = new \Sitemaps\Builder\XMLWriter\Builder();
    $builder->setOutputDir(__DIR__ . "/" . self::test_output_dir);
    $builder->setBaseUrl("http://example.com/sitemap/");
    $sm->setBuilder($builder);

    $sm->clear();

    $total = 2000;

    for ($i = 0; $i < $total; $i++) {
        $sm->addLocation("http://example.com/catalog/pages/{$i}/", new \DateTime("now"));
    }

    $sm->getBuilder()->build();

    $sm->clear();
}

```

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/480c070b13d26d8784801b718dd36bb7ec54ff7fff7bf33c8ff1e326c15766e8?d=identicon)[mapshub](/maintainers/mapshub)

---

Top Contributors

[![mapshub](https://avatars.githubusercontent.com/u/5164939?v=4)](https://github.com/mapshub "mapshub (16 commits)")

### Embed Badge

![Health badge](/badges/sitemaps-sitemap/health.svg)

```
[![Health](https://phpackages.com/badges/sitemaps-sitemap/health.svg)](https://phpackages.com/packages/sitemaps-sitemap)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
