# Surcharge d'une route

L'identifiant d'une route ou d'un middleware doit être unique. Si le même identifiant est présent dans deux fichiers différents alors une erreur est retournée lors de la construction du cache.

Il est cependant possible d'altérer une route existante. Pour cela, il faut utiliser la balise routes/route-override. Le contenu de la balise contient les altérations à effectuer sur la route. Ces altérations permettent de redéfinir une partie ou tout le contenu d'une route, la configuration initiale et les différentes couches de surcharge (override) sont alors fusionnées.

Si plusieurs override sont présents pour une même clef (name), elles sont prises en compte dans l'ordre de leur priorité (priority).

Exemple : Changement de la page principale (pattern = /)

<sde:config xmlns:sde="https://platform.anakeen.com/4/schemas/sde/1.0">
    <sde:routes namespace="Core">
        <sde:route-override name="Root">
            <sde:callable>My\Route\Welcome</sde:callable>
        </sde:route-override>
    </sde:routes>
</sde:config>

La définition initiale est :

<sde:config xmlns:sde="https://platform.anakeen.com/4/schemas/sde/1.0">
  <sde:routes namespace="Core">
    <sde:route name="Root">
      <sde:priority>0</sde:priority>
      <sde:callable>Anakeen\App\Core\WelcomePage</sde:callable>
      <sde:method>GET</sde:method>
      <sde:pattern>/</sde:pattern>
      <sde:description>Welcome Page</sde:description>
      <sde:requiredAccess/>
    </sde:route>
    </sde:routes>
</sde:config>