Le 07/01/10 07:49, Vincent Spehner a écrit :
> Bonjour à tous,
> 
> nous travaillons chez thinkDRY sur un CMS 2.0 OpenSource, la
> BlankApplication. Après un an de travail et d'implémentation pour
> différents clients, nous avons achevé le développement du coeur de
> l'application. Pour la rendre totalement modulaire, faciliter les
> développements de la communautés et suivre l'exemple des meilleurs
> projets OpenSource Rails du moment (Radiant, Spree), nous souhaitons
> mettre en place un mécanisme d'extensions
> (http://spreecommerce.com/documentation/extensions.html). Les engines
> sont a priori la meilleure façon de réaliser cela.
> 
> Cependant, lors de la création de la premiere extension nous avons été
> confronté à un principe de chargement qui veut que ce soit les
> controllers/models/vues de l'application principale qui "surdéfinissent"
> ceux présent dans les engines. Or comme notre coeur est dans
> l'application principale... ajouter des engines ne permet pas d'étendre
> les fonctions natives.
> 
> Je pensais pouvoir inverser cette règle avec des Dependencies:load_path
> mais après 2jours de recherche sur le web, je n'ai toujours pas
> solution. J'ai bien essayé de faire une tache rake d'install déplacant
> les fichiers du coeur mais bonjour les conflits dans git et la
> maintenabilité à terme !!
> 
> Avez-vous une idée, une piste?
> 

Personnellement, je ne suis pas convaincu que les Engine soit réélement
le meilleur solution.

Typiquement Radians n'utilise pas engine et c'est selon moi la meilleur
solution.

Le développement d'un système de plugin/extension custom à votre cas
peux rapidement se montrer plus performant, surtout au niveau sandboxing
que vous gérer ainsi beaucoup mieux.

Typiquement dans Typo, les helpers défini dans Typo sont loader
automatiquement par l'application de manière custom. Ca marche super
bien (merci Neuro)

-- 
Cyril Mougel
http://blog.shingara.fr/
-- 
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]

Répondre à