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