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.

Dernière modification de cette page le 30 mai 2007

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

Qui êtes-vous ?

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