DokuWiki

It's better when it's simple

Outils pour utilisateurs

Outils du site


fr:devel:coding_style

Style de programmation

Il n'existe actuellement aucune règle vraiment stricte sur la façon dont le code doit être formaté, mais il faut tenir compte de quelques éléments fondamentaux lors de l'ajout de code sur DokuWiki.

Il convient de noter que pour le noyau de DokuWiki, l'application du style de codage PSR2 est un travail en cours (branche psr2). Les règles de ce style de codage peuvent être consultées à l'adresse suivante : https://www.php-fig.org/psr/psr-2/.

Accolades et indentation

L'indentation de votre code devrait être de 4 espaces pour marquer les blocs logiques. Merci de ne pas utiliser de tabulation. Une grande partie du code utilise encore 2 espaces ; vous devez vous en tenir à cela ou changer l'ensemble du fichier pour 4 espaces. La même indentation doit être utilisée tout le long d'un même fichier : vérifiez combien d'espaces sont utilisées dans le code existant pour adopter la même convention.

Les accolades ouvrantes doivent commencer sur la même ligne que le mot-clef qui la précède, l'accolade fermante doit être alignée avec la première lettre de ce mot-clef. Par exemple :

if ($foo == "bar"){
  call_bar();
}elseif($foo == "baz"){
  call_baz();
}else{
  call_other();
}

Fins de lignes

Les lignes doivent se terminer avec un caractère de fin de ligne (à la façon UNIX). Essayez d'éviter les espaces en fin de ligne : vous pouvez consulter la page vim pour voir comment les détecter facilement avec VIM.

Commentaires

Chaque fonction et chaque classe doit avoir un commentaire pour PHPDocumentor, qui indique au moins le but de la fonction et son auteur. Il est agréable d'avoir une description pour les paramètres et la valeur de retour, mais elle n'est obligatoire que lorsqu'elle n'est pas évidente. Si vous améliorez une fonction existante, ajoutez simplement une nouvelle ligne d'auteur.

Exemple:

/**
 * Check for foo in bar
 *
 * Checks if there is a foo in bar
 *
 * @author   Joe Schmoe <joe@example.com>
 * @param    string $in your input
 * @returns  boolean    true if foo in bar
 */
function is_foo($in){
...
}

Ces commentaires sont utilisées pour la documentation de l'API générée automatiquement.

Balises fermantes de PHP

Vous devez omettre la balise fermante de PHP (?>) dans tous les fichiers, pour ne pas envoyer prématurément de texte en sortie. Cette pratique peut sembler étrange mais elle est en fait mentionnée dans le manuel de PHP:

Note: La balise fermante d'un bloc PHP à la fin d'un fichier est optionnelle, et parfois, il est utile de l'omettre lors de l'utilisation de la fonction include() ou de la fonction require(), car les espaces non désirés n'apparaîtront pas à la fin des fichiers, et ainsi, vous pourrez toujours ajouter des en-têtes à la réponse plus tard. C'est utile également si vous voulez utiliser la mise en tampon de la sortie et que vous ne voulez pas voir d'espaces blancs ajoutées à la fin des parties générées par les fichiers inclus.

Visibilité

Même si certains codes de base utilisent encore des déclarations “ var ” compatibles avec PHP4, vous êtes encouragé à utiliser des déclarations de visibilité PHP5 appropriées.

Veuillez ne pas utiliser private mais plutôt protected. Vous ne savez jamais quand une sous-classe peut vouloir écraser une fonctionnalité. Par exemple, une extension peut vouloir fournir une nouvelle fonctionnalité basée sur votre plugin.

Vérification des violations du style de codage

Le développement Git checkout contient une configuration standard de codage pour l'utilisation avec PHP_CodeSniffer dans _cs/DokuWiki.

Configuration

Pour installer PHP_CodeSniffer, lancez la commande suivante dans votre shell

  pear install PHP_CodeSniffer

Lier le standard de codage DokuWiki au répertoire CodeSniffer. Vous devrez peut-être ajuster les chemins d'accès en fonction de votre système d'exploitation.

  # PHP_CodeSniffer Version 2.x
  ln -s /path/to/dokuwiki/_cs/DokuWiki /usr/share/pear/PHP/CodeSniffer/Standards/DokuWiki
  
  # PHP_CodeSniffer Version 3.x
  ln -s /path/to/dokuwiki/_cs/DokuWiki /usr/share/pear/PHP/CodeSniffer/src/Standards/DokuWiki

Configurer DokuWiki pour être le standard par défaut.

  phpcs --config-set default_standard DokuWiki

Notez que la norme de codage DokuWiki fournie est pour PHP_CodeSniffer 2.x. PHP_CodeSniffer 3.x comporte des modifications de rupture qui entraînent des erreurs indiquant que l'interface PHP_CodeSniffer_Sniff n'a pas été trouvée.

Usage

Vous pouvez utiliser PHP_CodeSniffer pour vérifier un seul fichier ou un répertoire entier, y compris les sous-répertoires, à l'aide des commandes suivantes.

  # Vérifier un seul fichier
  phpcs myfile.php
  
  # Vérifier tous les fichiers d'un répertoire
  phpcs /path/to/directory

Crédits

  • mise à jour traduction : — digitalin 2020-08-15 17:37
fr/devel/coding_style.txt · Dernière modification : 2020-08-15 17:50 de digitalin

Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki