Le routage dans minim

Le concept de routage est important à comprendre pour profiter au mieux de la souplesse de minim.


Le routage statique

Le routage statique intervient si aucune route n'a été définie pour la page appelée.

Le routeur va donc aller chercher dans le cache la page demandée, dans la langue en cours sur le site ou l'application.

Si la version demandée n'est pas trouvée en cache, une exception est levée et nous redirige vers la page 404 avec les headers correspondants.

L'ensemble du cache (pages et système) peut être (ré)généré depuis le backoffice avec les droits sysAdmin : Système > Régénérer le cache.


Le routage dynamique

Si pour une page donnée une route a été indiquée, alors minim ne cherchera pas dans le cache la page demandée mais exécutera le service::méthode demandé et renverra le résultat.
Le backoffice offre une interface simple permettant de renseigner ces routes par modules, minim compris (minim est considéré comme un module), et par face (back, front).
Cette interface vérifie l'existence de la méthode appelée avant d'enregistrer la route demandée afin de protéger le front de toute "fatal error".
C'est grâce à ce système de routage donc que n'importe quelle page peut devenir dynamique.

Ces routes sont inscrites dans une classe PHP (pour des questions de performance) chargée dans inc.coreAutoConfig.php, donc tout en haut de la pile d'appel.


Déploiement / à noter

Si vous voulez basculer votre application de la version de développement vers la version de production, il convient de copier les fichiers XML définissants les routes pour chaque module (Websiteproperties.routes.front.xml par exemple), minim compris.

Mais attention ! Cette action n'est pas suffisante pour que les routes soient prisent en compte.

En effet, les fichiers XML de définition permettent uniquement d'afficher les routes dans l'interface du backoffice.

Un passage sur chaque module et chaque "face" (front, back) depuis la gestion des routes suivi d'une sauvegarde des routes va inscrire dans la classe PHP dédiée (/Core/data/class.RoutesConf.php) les différentes routes.