Raccourcis : Contenu - rubriques - sous rubriques
EN FR

Les modules sont regroupés dans un ou plusieurs répertoires que l'on appelle groupe de modules, ou aussi dépôt de modules.

Déclarer un dépôt de module

Pour avoir accès aux modules, il faut déclarer ces dépôts de modules avec jApp ou dans le fichier composer.json si vous avez installé Jelix avec Composer. (dans les versions 1.6 et inférieurs, c'était dans la configuration, avec la propriété modulesPath).

Un exemple avec jApp dans le script application.init.php :


   jApp::declareModulesDir(__DIR__.'/modules/');

On déclare ici un dépôt de modules : le répertoire modules/ de l'application.

Tous les modules se trouvant dans ce répertoire pourront être activés dans l'application.

Si vous avez installé Jelix avec Composer, vous avez une autre alternative : déclarer ces répertoires dans le fichier composer.json de l'application. Cette solution est fortement recommandée pour les paquets Composer fournissant des modules pour Jelix: vous déclarez alors les modules dans le fichier composer.json des paquets et seront automatiquement pris en compte.


{
   ...
   "extra" : {
      "jelix": {
         "modules-dir" : [
            "modules/",
         ]
      }
   }
}

Ici on déclare le répertoire modules/ qui est situé dans le même répertoire que le composer.json.

Notez que les répertoires de modules fournis avec le paquet Jelix sont automatiquement déclarés.

Déclarer un module seul

Tout comme les dépots de modules, vous pouvez déclarer directement le répertoire de module via jApp ou dans le fichier composer.json de l'application ou celui du paquet composer fournissant le module.


   jApp::declareModule(__DIR__.'/mon_module/');

ou encore dans un fichier composer.json :


{
   ...
   "extra" : {
      "jelix": {
         "modules" : [
            "mon_module/",
         ]
      }
   }
}

Une autre possibilité est de déclarer le chemin du module dans la configuration de l'application. C'est fait dans la section modules, avec le paramètre *.path. Par exemple :


[modules]
my_module.path = app:vendor/my_vendor_name/my_package/the_module

Cela facilite la migration depuis Jelix 1.6.x, et est utile pour déclarer un module tiers depuis un script de configuration.