DocumentationCréer et contribuerCode & Plugins

Creative Commons Attribution NonCommercial ShareAlike 4.0 License

Structure d’un module

La structure générale d’un module est quasi commune aux plugins et aux thèmes. Elle se définit comme suit.

Nom

Depuis la mise en place des espaces de nom pour les modules, le nom du répertoire racine du module sera son ID et son espace de nom PHP. De ce fait le nom doit commencer par une lettre et tous les caractères autres que des chiffres et des lettres sont proscrits.

  • Invalide : mon-plugin, 1to3plugin,
  • Valide : monplugin, MonPlugin2,

Fichiers à la racine du module :

  • _define.php : Fichier de définition
  • _disabled : Fichier de désactivation
  • _init.php : Fichier de définition d’initialisation
  • CHANGELOG.md : récapitulatif des modifications/versions
  • dcstore.xml : Fichier de définition de dépôt distant
  • icon.svg : Icône
  • icon-dark.svg : Icône sombre
  • LICENSE : Licence
  • README.md : Document d’introduction

Répertoires à la racine du module :

  • css : Feuilles de styles
  • default-templates : Templates
  • img : Images
  • js : Scripts javascript
  • locales : Traductions
  • src : Espace de nom contenant tous les fichiers .php

Fichiers du dossier src :

  • Backend.php : ex _admin.php Préparation de la partie admin,
  • Config.php : ex _config.php Configurateur,
  • Frontend.php : ex _public.php Préparation de la partie publique
  • Install.php : ex _install.php Processus d’installation
  • Manage.php : ex index.php Page de gestion principale
  • My.php : fonctions prédéfinies d’aides au code
  • Prepend.php : ex _prepend.php Préparation générale
  • Widgets.php : ex _widgets.php Gestion des widgets par le plugin widgets

Bonnes pratiques

Il est vivement recommandé (possible obligation à l’avenir) d’utiliser l’ID du module pour l’identifiant de ses paramètres dans les espaces de paramètres (blog settings) et les espaces de préférences (user pref).

Il est recommandé de séparer les behaviors trop volumineux des fichiers Backend.php / Frontend.php et de les mettre dans un fichier BackendBehaviors.php / FrontendBehaviors.php.

De manière générale le nom de fichier et donc de classe doit être en rapport avec sa fonction, par exemple une classe contenant toutes les méthodes en rapport aux templates coté public sera nommée FrontendTemplate.

A propos de l'auteur

L'homme invisible - Intérimaire chez Dotclear

Haut de page