PHPackages                             turbine-kreuzberg/spryker-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. [Utility &amp; Helpers](/categories/utility)
4. /
5. turbine-kreuzberg/spryker-sitemap

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

turbine-kreuzberg/spryker-sitemap
=================================

Sitemap module for Spryker shop

0.1.0(2y ago)13MITPHPPHP &gt;=8.0

Since Oct 19Pushed 2y ago6 watchersCompare

[ Source](https://github.com/turbine-kreuzberg/spryker-sitemap)[ Packagist](https://packagist.org/packages/turbine-kreuzberg/spryker-sitemap)[ RSS](/packages/turbine-kreuzberg-spryker-sitemap/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (8)Versions (2)Used By (0)

spryker-sitemap
===============

[](#spryker-sitemap)

Module generates sitemap according to the [sitemap protocol](https://www.sitemaps.org/protocol.html).

Installation
------------

[](#installation)

`composer require turbine-kreuzberg/spryker-sitemap`

Setup
-----

[](#setup)

To use the provided console commands you will need to register TurbineKreuzberg namespace in your `config_default.php`.

```
$config[KernelConstants::CORE_NAMESPACES] = [
    // add TurbineKreuzberg as a core namespace
    'TurbineKreuzberg',
];
```

In `ConsoleDependencyProvider` you need to add Sitemap consoles that you want to use.

```
use Shared\Zed\Sitemap\Communication\Console\SitemapConsole;use Shared\Zed\Sitemap\Communication\Console\SitemapIndexConsole;

    protected function getConsoleCommands(Container $container): array
    {
        $commands = [
            // ...

            new SitemapIndexConsole(),
            new SitemapConsole(),
        ];
```

If everything is working properly you should see sitemap section in your

```
 sitemap
  sitemap:generate        Generate sitemap(s).
  sitemap:index:generate  Generate sitemap index (do not forget to generate sitemaps first).

```

You do not need to register index console if you have only one plugin and you are generating a single sitemap.

Usage
-----

[](#usage)

To generate sitemaps for all of your registered plugins you need to run:

```
vendor/bin/console sitemap:generate
```

if you want to generate sitemap for a single sitemap plugin instead of all of them you can use `sitemap:generate` with a plugin name. Typical use case is when you have different update frequencies for different sitemaps.

```
vendor/bin/console sitemap:generate name-of-your-plugin
```

To generate sitemap index you need to run:

```
vendor/bin/console  sitemap:index:generate
```

Generation of index will assume that all the sitemaps for registered plugins are generated. For now there is no validation.

Sitemap plugins
---------------

[](#sitemap-plugins)

In order for console commands to do anything you will need to register at least one sitemap plugin in `SitemapDependencyProvider`. Plugins need to implement `\TurbineKreuzberg\Zed\Sitemap\Dependency\Plugin\SitemapPluginInterface`

### Technical considerations

[](#technical-considerations)

Sitemap generation can be resource intensive and that is why we can use [generators](https://www.php.net/manual/en/language.generators.php) to reduce the memory usage. ORMs should be avoided for bulk operations and Propel provides access to underline [PDO](https://www.php.net/manual/en/book.pdo.php) and we can utilize [PDOStatement::fetch](https://www.php.net/manual/en/pdostatement.fetch.php) to iterate through database records to save the memory.

### Example plugin

[](#example-plugin)

In the [documentation folder](./documentation) you can find a fully implemented [CategorySitemapPlugin](./documentation/src/Pyz/Zed/Url/Communication/Plugin/Sitemap/CategorySitemapPlugin.php)that will call url module to retrieve all the URLs for categories. You can find all the necessary changed in the project corresponding folders.

Configuration
-------------

[](#configuration)

Sitemap module comes with some configuration that you need to be aware of.

ConfigurationDescriptionPUBLIC\_HOSTNAMEHostname of your site (i.e. [www.example.com](http://www.example.com))INDEX\_FILENAMEdefaults to sitemap\_index.xmlIS\_SSL\_ENABLEDto put https or http in urls (defaults to true)SITEMAP\_FOLDER\_PATHfolder in which sitemaps are to be generated (defaults to /tmp)A word about sitemaps
---------------------

[](#a-word-about-sitemaps)

Sitemap standard comes with some [limitations](https://www.sitemaps.org/faq.html#faq_sitemap_size) that we need to consider. Probably most crucial is that you can have 50k links in one sitemap. If you have more than that you need to create sitemap index and multiple sitemaps. When you create your plugins you need to take that into account.

### Sitemap index example

[](#sitemap-index-example)

```

    https://www.example.com/sitemap1.xml.gz

    https://www.example.com/sitemap2.xml.gz

```

Testing
-------

[](#testing)

### Checking for code style violations

[](#checking-for-code-style-violations)

#### Sniffing

[](#sniffing)

`vendor/bin/phpcs --standard=vendor/spryker/code-sniffer/Spryker/ruleset.xml ./src`

#### Fixing of automatically fixable errors

[](#fixing-of-automatically-fixable-errors)

`vendor/bin/phpcbf --standard=vendor/spryker/code-sniffer/Spryker/ruleset.xml ./src`

### PHPStan

[](#phpstan)

`vendor/bin/phpstan`

### Running tests

[](#running-tests)

`vendor/bin/codecept build``vendor/bin/codecept run`

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity37

Early-stage or recently created project

 Bus Factor1

Top contributor holds 66.7% 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.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

937d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/fe66c182ebe0cea533fa24041957f2800e6aa928060568b3ae37a7e92ebb5d38?d=identicon)[bazoo0815](/maintainers/bazoo0815)

---

Top Contributors

[![berndalter-txb](https://avatars.githubusercontent.com/u/4046983?v=4)](https://github.com/berndalter-txb "berndalter-txb (2 commits)")[![damijanc](https://avatars.githubusercontent.com/u/1586796?v=4)](https://github.com/damijanc "damijanc (1 commits)")

###  Code Quality

TestsCodeception

### Embed Badge

![Health badge](/badges/turbine-kreuzberg-spryker-sitemap/health.svg)

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

PHPackages © 2026

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