Bonjour à tous,

J'ai créé un sitemap de mon site web et j'aimerais l'afficher à l'écran.
Cependant, je ne sais pas comment le manipuler. J'ai essayé comme ceci

use Cake\Utility\Xml;

class SitemapController extends AppController {

    public function beforeFilter(Event $event) {
        parent::beforeFilter($event);
        $this->Auth->allow(['index']);
    }

    public function index(){
  $this->autoRender = false;
  header('Content-Type: application/xml');
  $xml = Xml::build('/path/to/sitemap.xml');

Que faut-il faire avec cette ressource ? Je n'arrive même pas à l'utiliser dans un var_dump (erreur renvoyée : xml cannot be read)

J'imagine que ça ne doit pas être très sorcier, mais je ne trouve que des docs concernant de vieilles versions.

Merci pour votre aide,

Cdlt,

DR

1 réponse


Lartak
Réponse acceptée

Bonjour.
Pour commencer :

Avant que vous ne puissiez utiliser les classes de vue de données, vous devrez charger Cake\Controller\Component\RequestHandlerComponent dans votre controller:

public function initialize()
{
    ...
    $this->loadComponent('RequestHandler');
}

Tu peux donc déjà enlever ton header('Content-Type: application/xml');
Ensuite, il te faut préciser dans ton routing au moins, que le lien menant à cette action aura l'extension xml.
Pour terminer, il faut que tu envoi la variable pour la vue et que tu définisses un chemin correct pour ton fichier, autre que /path/to/sitemap.xml.