Hello,

Quatre choses qui me viennent en tête à la première lecture :

1. Est-ce que ce sera mis en place aussi pour les thèmes. Après tout un
thème peut nécessiter la présence d'un autre thème (parent) ou d'un plugin.

2. Est-ce qu'on peut d'ores-et-déjà envisager une propriété 'optionals'
(pas certain que le nom soit correct), avec des dépendances optionnelles
(exemple un thème qui prend en charge le plugin Gravatar mais qui
fonctionne même si ce dernier n'est pas installé). Cela dit, après avoir
écrit la phrase précédente je me demande si ce n'est pas superflu (cela dit
il y a une feature de ce type côté WP pour les thèmes qui prennent en
charge des plugins optionnels).

3. Tu as prévu un mécanisme pour gérer ou éviter les références circulaires
? Genre A needs B needs C needs A.

4. Est-ce qu'il ne faut pas non plus prévoir une version max (optionnelle)
pour les dépendances ? Ce qui donnerait array('boo','2.0','2.9').


Le 3 février 2015 15:42, Bruno <[email protected]> a écrit :

> Hello,
>
> J'ai commencé à plancher à nouveau sur la gestion des dépendances entre
> plugins.
>
> En pratique, si un plugin foo a besoin que le plugin "bar" soit installé,
> il faut définir dans les propriétés du plugin foo :
>
> $this->registerModule(
> /* Name */ "Foo",
> /* Description*/ "Foo plugin for Dotclear",
> /* Author */ "Bob Dylan",
> /* Version */ '1.0',
> array(
> 'permissions' => 'usage,contentadmin',
> 'requires' => array('bar')
> )
> );
>
> Si le plugin a en plus besoin du plugin "boo" en version 2.0 :
> $this->registerModule(
> /* Name */ "Foo",
> /* Description*/ "Foo plugin for Dotclear",
> /* Author */ "Bob Dylan",
> /* Version */ '1.0',
> array(
> 'permissions' => 'usage,contentadmin',
> 'requires' => array('bar', array('boo','2.0'))
> )
> );
>
>
> En clair, la propriété "requires" prend comme valeur un tableau d'entrées :
> * Soit le nom du module requis
> * Soit un tableau (nom, version min) du module requis
>
> Pour des raisons de performance, les tests de dépendances sont faits
> uniquement à l'accueil de l'admin, et sur la page plugins.php. Si un plugin
> a des dépendances non remplies, il est désactivé, et un avertissement est
> affiché.
>
> Ensuite, sur la page plugins.php :
> * pour chaque plugin actif, s'il d'autres plugins en sont dépendants, une
> information dans la description du plugin est affichée : "Si vous
> désactivez ou désinstallez ce plugin, les plugins suivants seront
> désactivés : foo, bar"
> * pour chaque plugin inactif :
>   * si certaines de ses dépendances sont manquantes, la case "activer"
> n'est pas affichée, et une information du type "Ce plugin nécessite
> l'installation des plugins suivants : foo, bar"
>  * si certains de ses dépendances sont désactivées, alors on affiche "si
> vous activez ce plugin, alors les plugins suivants seront aussi activés :
> foo, bar".
>
>
> Il faut ensuite que je regarde les dépendances de thèmes.
>
> --
> Bruno
> --
> Dev mailing list - [email protected] -
> http://ml.dotclear.org/listinfo/dev
>



-- 
Franck
-- 
Dev mailing list - [email protected] - http://ml.dotclear.org/listinfo/dev

Répondre à