# 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 .