Как создать sitemap.xml с помощью sonata seobundle (Symfony 4.3)?

С sonata admin bundle столкнулся впервые. Уйму времени потратил, никак не могу реализовать генерацию sitemap.xml. Для генерации поставил sonata-project/seo-bundle, дошел до раздела sitemap и встрял.

По инструкции создал SitemapIterator

<?php

namespace App\Application\Sonata\SeoBundle;

use Sonata\Exporter\Source\SourceIteratorInterface;

class SitemapIterator implements SourceIteratorInterface
{
    protected $key;
    protected $stop;
    protected $current;

    public function __construct($stop = 1000)
    {
        $this->stop = $stop;
    }

    public function current()
    {
        return $this->current;
    }

    public function next()
    {
        $this->key++;
        $this->current = [
            'url'  => '/public/',
            'lastmod'    => '01.01.2020',
            'changefreq' => 'weekly',
            'priority'   => 0.5
        ];
    }

    public function key()
    {
        return $this->key;
    }

    public function valid()
    {
        return $this->key < $this->stop;
    }

    public function rewind()
    {
        $this->key = 0;
    }
}

В services.yaml прописал:

services:
  # ...
  app.custom_sitemap_service:
    class: App\Application\Sonata\SeoBundle\SitemapIterator

В sonata_seo.yaml добавил:

sonata_seo:
  #...
  sitemap:
    services:
      - app.custom_sitemap_service
    doctrine_orm:
      # media
      - types: [image]
        connections: default
        route: sonata_media_view
        parameters: {id: null}
        query: |
          SELECT
            id,
            updated_at as lastmod,
            'weekly' as changefreq,
            '0.5' as priority
          FROM media__media
          WHERE enabled = true

*Запрос отдельно проверил - рабочий.

После чего запускаю php bin/console sonata:seo:sitemap public sonata-project.loc и вижу следующее: введите сюда описание изображения

То есть, он создает где-то временный файл, но в /public не перемещает, что бы карта была доступна по адресу sonata-project.loc/sitemap.xml

Подскажите, где накосячил?

P.S. использование конкретно этого бандла - не принципиально. Мытался ещё прикрутить CmfSeoBundle, но там ошибки ещё на этапе установки. А тут вроде бы отрабатывает, но не так как требуется.

Или может посоветуете, как ручками генерить sitemap.xml. К готовым решениям не привязан. Просто по ручной генерации ничего толкового не нашел :(


Ответы (0 шт):