# Enregistrement de routes

Les routes sont déclarées dans la balise routes du XML (Le schéma du XML est https://platform.anakeen.com/4/schemas/sde/1.0. Chaque route est identifiée par une clef unique (chaîne de caractères) présente dans l'attribut routes/route/@name. Cette clef est la propriété name de l'objet PHP \Slim\Route.

Les fichiers XML de déclaration des routes doivent être déclarés dans un fichier XML placé dans le répertoire de configuration config/SmartDataEngine/ du serveur.

Il est possible de déclarer un autre répertoire de configuration avec la commande :

www-data:$ ./ank.php --script=registerConfigDir
"
Register new path for route's and parameter's configuration
Usage:
   Options:
	--login=<user login name to execute function>, default is 'admin'
	--path=<The path to register>
	--action=<Action to do> [add|delete|list], default is 'add'
"

Exemple

www-data:$ ./ank.php --script=registerConfigDir --path=./vendor/My/Config/Routes/

Le nouveau répertoire peut être ajouté à l'installation d'un module via le fichier info.xml partie post-install :

<post-install>
        <process command="./ank.php --script=registerConfigDir --path=./vendor/My/Config/Routes/"/>

Exemple de fichier de déclaration de route : vendor/My/Config/Routes/myRoutes.xml

<router:config xmlns:router="https://platform.anakeen.com/4/schemas/sde/1.0">
    <router:routes namespace="My">
        <router:route name="Top">
            <router:callable>My\Routes\Top</router:callable>
            <router:method>GET</router:method>
            <router:pattern>/my[/]</router:pattern>
            <router:description>My welcome route</router:description>
        </router:route>
        <router:route name="Creation">
            <router:callable>My\Routes\CreateSomething</router:callable>
            <router:method>POST</router:method>
            <router:pattern>/my/do/{something}</router:pattern>
            <router:description>Create something</router:description>
        </router:route>
    </router:routes>
</router:config>

Les fichiers PHP doivent être les suivants (fonction du namespace du callable) :

  • vendor/My/Routes/Top.php
  • vendor/My/Routes/CreateSomething.php

Chacun de ces fichiers doit implémenter la méthode __invoke() avec les paramètres PSR-7 ($request, $response) et $args.

Note

Les routes sont enregistrées dans le serveur lors de la mise à jour d'un module ou avec l'utilisation de la ligne de commande .