I-Radian 2 en préparation

jeudi 16 février 2012 à 01:16

Nouvelles idées, nouvelle version. Même si ce n'est jamais facile de faire le choix du changement et de jetter à la poubelle quelque chose qui fonctionne très bien, il faut admettre que certaines évolutions sont difficiles à implémenter sans une refonte intégrale. Et j'en profite pour améliorer la structure, changer un peu les noms et ajouter quelques foncionnalités. Alors cette version n'est pas prête, mais je vous la présente quand même.

Ah! Que c'est bon de partir d'une page blanche et de commencer un nouveau projet. Bon alors, non, je ne jette pas tout donc la page n'est pas complètement blanche... Mais bon, même si pas mal de principes sont les mêmes, je n'ai pour l'instant fait qu'un seul copier/coller : abs2rel (manquerait plus que je l'oubli celle là...). Alors pourquoi cette refonte... C'est vrai quoi, le site n'a que 5 mois, vous vous ditse que je suis fou. Alors certe, le site n'a que 5 mois mais mon framework, lui, il a plus de 2 ans; et même si j'en suis très content, il était temps pour moi d'en changer.

Alors certains principes restent les mêmes : chargement automatique des modules, des helpers pour les "petits bouts de code qu'on ne sais pas où mettre", templates liés à un controller, debug en fonction de l'environnement, fonction de tracking de code (ca aussi c'est du copier/coller puis amélioré), configuration en javascript, etc. Mais il y a surtout de nombreuses améliorations.

Tout d'abord, j'ai décidé "d'ouvrir" les classes du core afin de laisser les utilisateurs les modifier comme bon leur semble, sans mettre l'application en danger. Ceci ce traduit par une extensions vide pour chaque classe du core et aucune classe/attribut private (uniquement protected ou public). Ce sont bien sûr les extensions qui sont utilisées partout dans l'application, vous pouvez donc surcharger facilement toutes les fonctions du core. A vos risques et périls bien entendu.

En ce qui concerne le nommage, j'ai modifier mon ancienne appellation ( Site/Action->Méthode ) par quelque chose de plus classique : Application/Action->Controller. J'implémente aussi une nouvelle fonctionnalité : la surcharge dynamique des actions. Le concept est très efficace : il est possible d'appeler en cascade plusieurs actions afin de les gérer sur plusieurs niveaux. C'est légèrement inspiré de ce que j'ai pu voir en CSS ou dans eZPublish mais avec une interprétation différente.

Dans les faits, c'est simples comme tout : on utilise souvent des codes controllers identiques sur le front et le back d'un site, ce qui va a l'encontre de la philosophie DRY (Don't Repeat Yourself). Ici, il suffis de créer une troisième application commune au front et au back pour accéder aux fonctionnalités communes. C'est principalement à cause de cette fonctionnalité que j'ai choisi de créer une nouvelle version d'I-Radian.

J'ai aussi ajouté une couche de cache (qui risque cependant de partir bien vite si je n'y trouve pas de réelle utilité). J'ai choisi de dissocier les fichiers accessibles par l'utilisateurs (JS, CSS, etc) dans un dossier vers lequel tout les appels sont redirigé. Ca me permettra de ne pas avoir à laisser de fichiers htaccess partout par sécurité.

J'hésite encore à modifier mon routing pour qu'il soit entièrement gérer via une config comme ce que j'ai pu voir dans symfony (version 1, je n'ai pas regardé la 2) ou eZPublish. Ce qui donnerai une certaine utilité à mon cache. En gros, je trouve la fonctionnalité très puissante mais l'intérêt assez limité et assez lourd dés qu'il faut créer un lien.

Voila donc ou j'en suis pour l'instant de ma réflexion sur cette nouvelle version d'I-Radian. J'ne suis encore a faire des tests, j'ai une version "alpha", mais j'espère que comme moi vous en avez l'eau à la bouche. Je vous tiendrais au courant sur mes différents choix et sur l'avancement du dèv.

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