Section: Les répertoires de modules
« Les fichiers de configuration | ^ La configuration |
− Table des matières
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.
Il faut que Jelix ait connaissance du chemin de ces répertoires pour qu'il puisse y accèder.
Ces chemins peuvent être déclaré au moyen d'une API dans application.init.php
,
ou dans le fichier composer.json
des paquets comportant les modules en question.
Attention, pour que la déclaration automatique fonctionne avec les fichiers composer.json
,
il faut avoir activé le plugin composer fourni avec Jelix, dans le fichier
composer.json
de votre projet :
{
"config": {
"allow-plugins": {
"jelix/composer-module-setup": true
}
}
}
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.