Как сохранить XML-файл при помощи Yii2?

Здравствуйте. Формирую карту сайта в админке и для сохранения файла xml в контроллере прописал:
\Yii::$app->response->format = \yii\web\Response::FORMAT_RAW;
\Yii::$app->response->headers->add('Content-Type', 'text/xml');

$xml_sitemap = $this->renderPartial('sitemap', array(
    'objects' => $objects,
));

$filepath = \Yii::$app->basePath . '/views/sitemap/sitemap.xml';
file_put_contents($filepath ,$xml_sitemap);


Код шаблона sitemap.php:
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <?php foreach($objects as $obj) { ?>
        <url>
            <loc><?= Yii::$app->params['siteUrl'] . '/' . $obj['url']; ?></loc>
            <priority>1</priority>
        </url>
    <?php } ?>
</urlset>

Подскажите, можно ли обойтись в контроллере без использования file_put_contents() средствами Yii2?
  • Вопрос задан
  • 382 просмотра
Пригласить эксперта
Ответы на вопрос 1
cr1gger
@cr1gger
Все дороги ведут в Рим — встретимся в Риме!
Её не нужно сохранять. Сразу выводишь во view
А в конфиге в urlManager пишешь:
[
    ...
    'sitemap.xml' => 'site/sitemap'
    ...
]


И ты открываешь ссылку https://site.ru/sitemap.xml
У тебя там карта твоя
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы