Contexte
Je dois migrer une application javascript existante (une application en une seule page) vers extjs. L'affichage et le comportement de l'application dépendent des autorisations des utilisateurs.
Conception actuelle
L'application est divisée en plugins, qui représentent un ensemble de fonctionnalités pour lesquelles des autorisations sont accordées. Chacun de ces plugins se compose d'un seul fichier javascript. Un utilisateur peut avoir des autorisations pour un ou plusieurs plugins. En fonction des autorisations, ces fichiers sont chargés dans l'en-tête de la page. Chacun de ces plugins ajoutera ses entrées au menu principal et exposera les méthodes utilisées pour piloter l'application.
Les autorisations sont stockées dans une base de données mysql.
Conception par défaut d'ExtJs
Avec ExtJs, les fichiers sources contiennent chacun une classe. Pendant le processus de construction, tous les fichiers .js sont concaténés pour obtenir un seul fichier .js, qui contient tout.
Quelle serait la meilleure approche de conception ?
- J'ai envisagé d'utiliser une compilation personnalisée avec
sencha cmd
et de créer ainsi un fichier .js pour chaque plugin. Ensuite, je pourrais charger ces plugins de la même manière que je le fais actuellement. Mais cela entraîne un processus de construction et de déploiement compliqué. - J'ai également envisagé de créer un seul fichier .js avec un processus de construction Ext standard. Ensuite, je chargerais les autorisations depuis le serveur via ajax afin de construire le menu. Tous les objets et méthodes existeraient, mais seuls ceux accessibles là où l'utilisateur a des autorisations.
À mon avis, la deuxième approche est beaucoup plus facile à maintenir, mais semble poser un problème de sécurité, car tout le monde pourrait consulter le code source et découvrir les interfaces de données exposées sur le serveur et consommées par ajax.
Tout commentaire, idée ou conseil est le bienvenu. Merci !