Raccourcis : Contenu - rubriques - sous rubriques
EN FR

Un module est un répertoire dans lequel il y a une arborescence précise. 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 dans la configuration, par la propriété modulesPath. On peut y indiquer plusieurs chemins en les séparant par des virgules. On peut indiquer soit des chemins complets, soit des chemins relatifs à un répertoire spécifique de l'arborescence Jelix. Ces chemins relatifs ont une notation spéciale :

   coderepertoire:chemin/relatif/

coderepertoire est un de ces codes :

lib répertoire lib/ de jelix
app répertoire de l'application

Cela évite d'avoir à indiquer un véritable chemin relatif. Et donc d'avoir à changer à la fois le fichier application.init.php et le fichier de configuration quand on fait une modification dans l'arborescence, quand on migre l'application d'un serveur à un autre (entre le développement et la production par exemple).

Exemple :


   modulesPath = lib:jelix-modules/,app:modules/

On déclare ici qu'il y a deux dépôts de modules : le premier, jelix-modules, se trouvant dans le répertoire lib/ de jelix; le deuxième, le répertoire modules/ de l'application.

Tous les modules se trouvant dans ces deux répertoires pourront être activés dans l'application.

Créer un module

Le principe : il suffit de créer un répertoire dans un dépôt, avec un nom précis, et d'y mettre les contrôleurs, les daos et tout ce qu'il faut dans leurs sous-répertoires respectifs.

Le plus simple est encore d'utiliser le script jelix et la commande createmodule :


   php jelix.php --myapp createmodule monmodule

Cela vous créé un module de nom "monmodule" dans le répertoire modules/ de l'application, ainsi que l'arborescence classique d'un module et un contrôleur par défaut.

  • *Important** : Le nom des modules est repris dans certaines classes générées automatiquement par Jelix, aussi ne peut-il comporter que des caractères autorisés par PHP pour les noms de classes : lettres minuscules, majuscules, non accentuées, les chiffres et le caractère _.

Par défaut, le module est crée dans le répertoire modules/ de l'application, mais si vous voulez le créer dans un autre dépôt de module déclaré dans modulesPath, vous pouvez l'indiquer après le nom du module, en utilisant la même syntaxe que pour modulesPath, à savoir un chemin absolue ou un chemin relatif précédé de "lib:" ou "app:".

Cet exemple crée le module supermodule dans le répertoire lib/shared-modules/


   php jelix.php --myapp createmodule supermodule lib:shared-modules/

Voir l'aide en ligne de la commande createmodule pour connaître d'autres options.

Indiquer le numéro de version et les dépendances

Après avoir créer le module, vous devez vérifier que le numéro de version initial est bon pour vous. Par défaut, c'est 0.1pre. Vous devez aussi éventuellement indiquer les dépendances. Ces deux choses sont très importantes pour le système d'installation de jelix.

Vous pouvez indiquer le numéro de version à la commande createmodule, grâce à l'option -ver :


php jelix.php --myapp createmodule -ver 1.0 supermodule

Vous pouvez aussi le modifier directement dans le fichier module.xml de votre module.

Vous pouvez enfin définir les dépendances de votre module. Les dépendances sont les modules nécessaires à l'exécution du nouveau module. Dans l'élément <dependencies> dans le fichier module.xml, ajouter autant de balises <module> que de modules nécessaires.


   <dependencies>
     <jelix minversion="1.2" maxversion="1.2.*" />
     <module name="jauth" minversion="1.2" />
     <module name="anOtherModule" minversion="1.0" maxversion="1.4.*" />
   </dependencies>

Les attributs minversion et maxversion sont facultatifs.

Pour plus de détails sur le contenu de module.xml, lisez le chapitre correspondant.