Jelix PHP5 framework

Jelix 1.2 nouveautés dans jUrl

Parmi la liste des nouveautés, l’une d’elle, non négligeable, qui rend bien des services, se porte sur jUrl.

Avant la 1.2, pour gérer le mapping entre ses URLs et ses modules/contrôleurs/actions, tout était regroupé dans un seul et unique « gros » fichier (var/config/urls.xml) pour l’application entière.

Depuis la 1.2 il est possible de créer ‘n’ fichiers urls.xml dans chacun de ses modules. Eux mêmes appelés depuis le fichier var/config/urls.xml de l’application.

Ceci permet une maintenance plus aisée des URLs, et surtout évite d’avoir à redéfinir ou à « recopier » les URLs d’un module réalisé par un tiers pour exploiter ledit module tiers.

Exemple concret extrait du forum HaveFnuBB :

Ici le fichier var/config/urls.xml de l’application :

<urls xmlns="http://jelix.org/ns/urls/1.0">
...
        <url pathinfo="/post"  module="havefnubb" include="urls_post.xml"/>
...
</urls>

Ici le fichier urls_post.xml se trouvant dans le dossier du module havefnubb :

<suburls xmlns="http://jelix.org/ns/suburls/1.0">
...
        <url pathinfo="/shownew" action="posts:shownew"/>
...
</suburl>

La différence notable est la suivante :

  • le fichier urls.xml de l’application commence par le noeud urls
  • le fichier urls_post.xml du module commence par le noeud suburls

Grâce à tout cela, quand on tapera l’URL http://foobar.com/post/shownew, Jelix trouvera tranquillement le cheminement et se rendra dans le module havefnubb, et à l’action posts:shownew

Maintenant j’ai besoin d’utiliser un module tiers, comme le module jAuth pour permettre aux utilisateurs de se connecter au forum.

Il me suffira d’ajouter une ligne au fichier le l’application var/config/urls.xml pour disposer de TOUT le module jAuth.

<urls xmlns="http://jelix.org/ns/urls/1.0">
...
        <url pathinfo="/post"  module="havefnubb" include="urls_post.xml"/>
        <url pathinfo="/auth" module="jauth" include="urls.xml" />
...
</urls>

le fichier urls.xml du module jAuth est celui ci :

<?xml version="1.0" encoding="utf-8"?>
<suburls xmlns="http://jelix.org/ns/suburls/1.0">
    <url pathinfo="/dologin" action="login:in" />
    <url pathinfo="/dologout" action="login:out" />
    <url pathinfo="/login" action="login:form"/>
</suburls>

Ce qui aura pour effet de permettre l’accès à la page de connexion via http://foobar.com/auth/login

C’est simple, mais efficace ;-)

Je vous invite à vous rendre sur la doc de Jelix pour plus d’infos sur jUrl dans Jelix 1.2 et surtout le tester pour vous rendre compte des possibilités que cela offre.

nota: la version abordée ici est la 1.2RC1, la 1.2 n’étant pas encore disponible.

Have Fnu!