Convention de nommage pour le code des plugins

Une proposition pour éviter les conflits de noms entre les actions de différents plugins.

ceci fait suite à une discussion sur irc le dimanche 27 mai 2007 à propos d’une recommandation manquante pour les plugins.

Constat : un espace de nommage unique

Un plugin peut fournir des execs et des actions. Peu de différences si ce n’est que l’un est privé et le second public (grosso modo). Ils partagent en tout cas une chose, c’est qu’ils sont basés sur une recherche d’un fichier exec/xxx.php ou action/xxx.php

Tout cela pour dire que ces « xxx » ne sont pas infinis (on appelle ça un espace de nommage unique). Donc, pitié ! Lorsque vous adoptez un nom pour une action ou un exec de votre plugin, veuillez assurer qu’il est assez particulier pour votre plugin.

Un exemple célèbre est « spip-listes » qui utilise ou utilisait exec=config. On peut croire que c’est la config générale de spip ? et bien non c’est juste celle de « spip-listes » ... Cette appropriation est une des raisons pour laquelle cfg s’appelle cfg et pas config.

Proposition de convention

La seule solution pratique est de préfixer le nom, par exemple, nous parlions avec BoOz de renommer ce spip-listes/exec/config.phpen
spip-listes/exec/sl_config.php ou spip-listes/exec/listes_config.php (en préfixant le nom de fichier donc). Ce qui donnerait ecrire/?exec=sl_config... etc.

Je donnerais aussi l’exemple de « spixplorer » dont toutes les actions sont des
spx_machin.

Idéalement, il faudrait meme utiliser le « prefix » du plugin, dont l’unicité est assurée, comme prefixage de tous les noms de fichiers de chaque plugin ainsi que le suggère Cédric. Evidemment, cela fait des noms à rallonge, mais ils faut savoir que ça n’est qu’interne, en général, ça correspond à un bouton à cliquer.

Ma proposition était même de réserver les noms très génériques au core de SPIP . Car je ne pense pas qu’une solution compliquée coté core fasse l’affaire. C’est très, très bien que les noms d’actions ou execs se limitent à un nom pour celui ci.

La suite

Débat sur le forum ci-dessous

Merci à Nicolasr d’avoir transformé cette discussion en convention.

Discussion

Une discussion

  • Bonjour

    Je serais assez d’accord pour donner en prefixe le nom complet du plugin.
    Cela donne peut etre un truc à rallonge mais c’est deja le cas pour les fonctions interne aux plugins.

    De plus pas de surprises à la lecture du exec/xxx.php . Car spx, ou bien sl ou listes c’est pas necessairement évident à deviner.

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom