PHPackages                             demi/sitemap-generator - 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. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. demi/sitemap-generator

ActiveYii2-extension[Parsing &amp; Serialization](/categories/parsing)

demi/sitemap-generator
======================

Yii2 component for generate sitemap.xml files.

1.2.0(5y ago)1427.0k↓22%4[1 issues](https://github.com/demisang/yii2-sitemap-generator/issues)GPL-3.0-or-laterPHPPHP &gt;=5.4.0

Since May 7Pushed 5y ago3 watchersCompare

[ Source](https://github.com/demisang/yii2-sitemap-generator)[ Packagist](https://packagist.org/packages/demi/sitemap-generator)[ Docs](https://github.com/demisang/yii2-sitemap-generator#readme)[ RSS](/packages/demi-sitemap-generator/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (9)Dependencies (1)Versions (10)Used By (0)

yii2-sitemap-generator
======================

[](#yii2-sitemap-generator)

Yii2 component for generate sitemap.xml files

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

[](#installation)

Run

```
composer require "demi/sitemap-generator" "~1.0"

```

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

[](#configuration)

Edit "/console/config/main.php"

```
return [
    'controllerMap' => [
        'sitemap' => [
            'class' => 'demi\sitemap\SitemapController',
            'modelsPath' => '@console/models/sitemap', // Sitemap-data models directory
            'modelsNamespace' => 'console\models\sitemap', // Namespace in [[modelsPath]] files
            'savePathAlias' => '@frontend/web', // Where would be placed the generated sitemap-files
            'sitemapFileName' => 'sitemap.xml', // Name of main sitemap-file in [[savePathAlias]] directory
        ],
    ],
];
```

Because generator working in console, Yii create absolute url should know site base url, so configure it: "./environments/prod/console/config/main-local.php"

```
'components' => [
    // fix console create url
    'urlManager' => [
        'baseUrl' => 'http://example.com',
    ],
],
```

"./environments/dev/console/config/main-local.php"

```
'components' => [
    // fix console create url
    'urlManager' => [
        'baseUrl' => 'http://example.local',
    ],
],
```

The re-init project local config:

```
php ./init

```

OR just apply same config to your "/console/config/main-local.php"

Also you can merge urlManager rules from frontend(or common) to console config.
Just change "/console/config/main.php" file:

```
// get config of urlManager from frontend for correctly create urls in console app
$frontend = require(__DIR__ . '/../../frontend/config/main.php');

return [
    'id' => 'app-console',
    'components' => [
        'urlManager' => $frontend['components']['urlManager'],
    ],
];
```

Also useful append .gitignore for ignore all generated sitemaps files:

```
# sitemaps
/frontend/web/sitemap*.xml

```

Sitemap-data models (important!)
--------------------------------

[](#sitemap-data-models-important)

You should create special sitemap-models for each your model, that should be in result sitemap.xml.
So let's create a maximal sitemap model extended from you `Post` model and attach interfaces:
/console/models/sitemap/SitemapPost.php

```
