Un point sur I-Radian 2

vendredi 09 mars 2012 à 00:30

Ca avance plutôt vite ! Le core est presque bouclé, il ne reste plus que quelques fonctions à rajouter (pour faire des liens par exemple), la doc est bien entamée et le tuto de démarrage rapide est en cours de réflexion. Le principal, c'est que j'ai choisi ce que je vais mettre sur la carte du menu.

Lors de mon dernier article, j'avais encore quelques doutes sur certaines fonctionnalités à implémenter pour la prochaine version. J'ai finalement pris mes décisions et j'ai fais simple, j'ai tout mis : la surcharge dynamique des actions biensur, le cache est resté et le routing via un fichier de config. J'ai par contre fais quelques modifications.

Par exemple, les templates sont associés par défaut au controller. Il était déjà possible de modifier le template appliqué a un affichage, maintenant, c'est encore plus simple. En fait, le fichier permettant de gérer le Routing permet non seulement de définir le template à appliquer, mais aussi le layout, de définir qu'il n'y aura pas d'affichage (pour les cron par exemple), ainsi qu'une liste de header a envoyer. En gros, une entrée du fichier de Routing peut ressembler a ceci :

// exemple simple :
"link2"    : {    "url"     : "/+/+/+?",
            "site"          : "$1",
            "action"        : "$2",
            "controller"    : "$3"
        },
// exemple complet :
"link"    : {    "url"     : "/site/$var_1/action/+/+/$var_2/?",
            "site"          : "front",
            "action"        : "main",
            "controller"    : "index",
            "layout"        : "my_layout",
            "template"      : "dir/to/my/template.htm",
            "header"        : [
                "Content-Type: text/html; charset=UTF-8"
            ],
            "format"        : {
                "var_1" :  "[0-9]+"
                "var_2" :  "[\w]+"
            }
        },

Ce fichier permet donc d'initialiser pas mal de choses, j'hésite encore à mettre une entrée spéciale 404 (et oui, encore et toujours des hésitations). L'une des grosses différence avec la version actuelle, c'est que cette fois, lorsque le visiteur entre une URL qui n'est pas défini, il est redirigé vers un 404 alors qu'actuellement, c'est à vous de le rediriger si la page n'existe pas. Bon, sinon, par défaut, il est redirigé vers le controller principal, donc ce n'est pas trop grave, mais je trouvais ca plus que gênant... surtout depuis que je bosse dans le référencement (remarquez que mon site est bien géré a ce niveau puisque je fais effectivement des 404).

Le meilleur exemple que je puisse donné, c'est l'AJAX : je défini que si l'URL commence par "/ajax/..." ou non, le controller sera le même, mais ni le template, ni le layout (ou de n'afficher aucun layout). Il est biensur toujours possible de changer le template et le layout depuis le controller (grace aux méthodes setTemplate et setLayout).

Pour le cache, je me suis décidé à le laisser. Ce n'est pas que j'utilise énormément de conf mais j'ai prévu d'y ajouter pas mal de choses pour accélérer le fonctionnement. J'ai choisi une forme relativement simple : un dossier de cache avec des fichiers contenant des var_export. Pour la génération c'est un peut-être un peu plus long que certaine formules, mais pour la lecture, c'est forcément plus efficace (tout l'intérêt du cache est là).

Allez, je vous laisse, j'ai du code à finir moi...

Laissez un commentaire

captcha

En bref...

Dernier article

La dictature sur facebook

Cette semaine, l'actu, c'est Facebook qui trébuche. Le réseau social vient en effet de supprimer le droit de vote de ses membres. On a aussi GoogleNow sur Chrome, des nouvelles pas très réjouissantes de l'UIT, du piratage, l'étoile de la mort de Star Wars et une évasion échoué.

Ressources externes