Gestion des dépendances

Les plugins peuvent indiquer qu’ils dépendent de certaines conditions pour fonctionner. Deux attributs indiquent cela : necessite et utilise. Dans le premier cas, la dépendance est forte : un plugin qui nécessite quelque chose (une certaine version de SPIP ou d’un plugin) ne pourra pas s’activer si celui-ci n’est pas présent et actif. Une erreur sera générée si l’on tente d’activer le plugin s’il ne vérifie pas sa dépendance. Dans le second cas, la dépendance est faible, le plugin peut s’activer et fonctionner même si la dépendance n’est pas présente.

Necessite

<necessite nom="prefixe" compatibilite="[version_min;version_max]" />
  1. nom est le nom du préfixe du plugin, ou "SPIP" pour une dépendance directe à SPIP,
  2. version optionnellement peut indiquer la version minimum et/ou la version maximum d’un plugin.
    - Les crochets indiquent que la version limite est comprise dedans,
    - les parenthèses indiquent que la version limite n’est pas comprise.
    - Depuis spip 3.0.0 il est recommandé de mettre une * à la place du z du numéro de version x.y.z pour indiquer que cela concerne toute les versions x.y

Exemple

// necessite saisies 2.0.0 minimum
<necessite nom="saisies" compatibilite="[2.0.0;)" />
// necessite saisies < 2.0.0
<necessite nom="saisies" compatibilite="[;2.0.0)" />
// necessite saisies >= 2.0.0, et <= 2.1.0
<necessite nom="saisies" compatibilite="[2.0.0;2.1.0]" />

Utilise

Utilise permet donc de déclarer des dépendances optionnelles, exactement avec la même syntaxe que necessite.

Par exemple, certains plugins peuvent indiquer qu’il est possible de modifier leur configuration si le plugin CFG est présent (mais il n’est pas indispensable au fonctionnement du plugin) :

// configuration possible grâce au plugin cfg version 1.10.5 ou plus
<utilise nom="cfg" compatibilite="[1.10.5;]" />

Usages de utilise et necessite

  1. utilise et necessite permettent de surcharger les fichiers du plugin qu’ils indiquent (en étant prioritaire dans le chemin).
  2. Depuis spip 3.1.0, il est possible de faire une dépendance à une version particulière de PHP.
    Par exemple :
    <necessite nom="php" compatibilite="[5.3.0;]" />


  3. Depuis spip 3.2.0 il est possible de faire une dépendance concernant une lib de php :
    Par exemple :
    <necessite nom="php:curl" compatibilite="[1.0.0;]" />

Exemple

Certains plugins peuvent indiquer qu’il est possible de modifier leur configuration si le plugin CFG est présent (mais il n’est pas indispensable au fonctionnement du plugin) :

// plugin de configuration
<utilise nom="cfg" version="[1.10.5;]" />

Auteur Matthieu Marcillaud Publié le : Mis à jour : 09/05/19

Traductions : English, français, Nederlands