Bonjour !
Alors actuellement, j'ai une application MVC. Il s'agit d'un moteur de jeu en fait. J'aimerais pouvoir wrapper chaque fonctionnalité globale du jeu par module, ce qui permetterais de facilement activer/installer ou désactiver/désinstaller chaque module, selon le besoin.
Exemple:
Si vous avez besoin que votre jeu ai des boutiques, vous placez le module "shop" dans module/.
Si vous avez besoin que votre jeu ai des laboratoires, vous placez le module "labo" dans module/.
etc.
Sauf que je réalise que je ne sais pas comment structurer mes dossiers.
Solution #1, tout encapsuler dans un unique dossier:
/
/module
/module/shop/
/module/shop/config.inc.php //Fichier de configuration du module, avec ses dépendances, etc.
/module/shop/controller/
/module/shop/controller/inventaire.php
/module/shop/controller/vendre.php
/module/shop/controller/acheter.php
/module/shop/controller/gestion.php
/module/shop/model/
/module/shop/model/item.php
/module/shop/view/
/module/shop/view/inventaire.htm
/module/shop/view/gestion.htm
/module/labo/
/module/labo/config.inc.php //Fichier de configuration du module, avec ses dépendances, etc.
/module/labo/controller/
/module/labo/controller/production.php
/module/labo/model/
/module/labo/model/substance.php
/module/labo/model/materiel.php
/module/labo/view/
/module/labo/view/production.htm
Solution #2, préserver l'architecture MVC classique, et créer 3 dossier par plugin:
Mais du coup ca complique l'utilisation pour les utilisateurs finaux./
/modules/
/modules/shop/
/modules/shop/config.inc.php
/modules/labo/
/modules/labo/config.inc.php
/controller/
/controller/shop/
/controller/shop/inventaire.php
/controller/shop/vendre.php
/controller/shop/acheter.php
/controller/shop/gestion.php
/controller/labo/
/controller/labo/production.php
/model/
/model/shop/
/model/shop/item.php
/model/labo/
/model/labo/substance.php
/model/labo/materiel.php
/view/
/view/shop/
/view/shop/inventaire.htm
/view/shop/gestion.htm
/view/labo/
/view/labo/production.htm
Puis il y a le problème des éléments globaux, pas exemple ma classe personnage, item ou lieu. Ce sont des classes qui sont forcément utile et qui font parti du coeur même du jeu. Où est-ce que je les place ces fichiers ?
Bref, voilà, laissez-moi savoir vous gèreriez ce genre de cas, qui j'en suis sur est assez répandu pour toute application voulant supporter des plugins non-intrusifs.
Merci !
Partager