Langages et normes: Difference between revisions

Jump to navigation Jump to search
m
Tag: 2017 source edit
Tag: 2017 source edit
Line 83: Line 83:
</source>
</source>


*Les fonctions doivent retourner une valeure strictement > à 0 en cas de succès, et un nombre < à 0 en cas d'erreur.
*Les fonctions doivent retourner une valeur strictement > à 0 en cas de succès, et un nombre < à 0 en cas d'erreur.


*Pas de code mort (non utilisé) dans le code principal de Dolibarr (le code utilisé uniquement par un module externe doit être inclus dans le module externe).
*Pas de code mort (non utilisé) dans le code principal de Dolibarr (le code utilisé uniquement par un module externe doit être inclus dans le module externe).
Line 90: Line 90:


*Le style de code a utiliser est le PSR-12 (https://www.php-fig.org/psr/psr-12/). Seules les règles "MUST" sont imposées. Notez aussi les points/exceptions suivants:
*Le style de code a utiliser est le PSR-12 (https://www.php-fig.org/psr/psr-12/). Seules les règles "MUST" sont imposées. Notez aussi les points/exceptions suivants:
**La longueur des lignes: PSR-12 indique que la longueur des lignes a une limite "soft" à 120. Il est en effet préférable d'avoir de longues lignes de données de déclaration plutôt que de longues pages car ce code ne contient aucune logique intéressante ou utile, toutefois une limite "hard" a été instauré à '''1000''' caractères. Du code qui ira au dela provoquera des erreurs dans la plateforme d'Intégration Continue.
**La longueur des lignes: PSR-12 indique que la longueur des lignes a une limite "soft" à 120. Il est en effet préférable d'avoir de longues lignes de données de déclaration plutôt que de longues pages car ce code ne contient aucune logique intéressante ou utile, toutefois une limite "hard" a été instauré à '''1000''' caractères. Du code qui ira au delà provoquera des erreurs dans la plateforme d'Intégration Continue.
**Les tabulations sont acceptées: L'autre exception est qu'on ne remplace pas les tabulations systématiquement par des espaces. L'utilisation des tabulations simplifie la vie de certains développeurs. De plus, l'utilisation d'espaces rend certaines fonctions d'autoformatage défectueuses (comme sur certaines versions d'Eclipse, lors de copié-collé).
**Les tabulations sont acceptées: L'autre exception est qu'on ne remplace pas les tabulations systématiquement par des espaces. L'utilisation des tabulations simplifie la vie de certains développeurs. De plus, l'utilisation d'espaces rend certaines fonctions d'autoformatage défectueuses (comme sur certaines versions d'Eclipse, lors de copié-collé).
**Note 1: Les règles suivantes sont particulièrement importantes:
**Note 1: Les règles suivantes sont particulièrement importantes:
***Les fichiers doivent être sauvés en format Unix (LF) et non Windows (CR/LF). Le format Unix étant compatible sur les OS Unix like, Windows, Mac, alors que le format fichier texte Windows pose problème sous certains PHP sous Unix.
***Les fichiers doivent être sauvés en format Unix (LF) et non Windows (CR/LF). Le format Unix étant compatible sur les OS Unix like, Windows, Mac, alors que le format fichier texte Windows pose problème sous certains PHP sous Unix.
***Les smart tags PHP ne sont pas utilisés. Les sections de code doivent commencer par '''<?php'''
***Les smart tags PHP ne sont pas utilisés. Les sections de code doivent commencer par '''<?php'''
**Note 2: Vous pouvez utiliser le fichier '''dev/codesniffer/ruleset.xml''' comme fichier de contrôle pour vérifier votre style de code avec PHPCodeSniffer.
**Note 2: Vous pouvez utiliser le fichier '''dev/setup/codesniffer/ruleset.xml''' comme fichier de contrôle pour vérifier votre style de code avec PHPCodeSniffer.
**Note 3: Vous remarquerez que le code actuel ne suit pas forcément tout cela. La raison est historique. La règle fut instaurée en cours de route, aussi, si vous trouvez du code non respectueux de ce standard, n'hésitez pas à le corriger.
**Note 3: Vous pouvez utiliser le fichier '''dev/setup/eclipse/PSR-12 [built-in].xml''' comme fichier de règles de syntax pour configurer Eclipse.
**Note 4: Vous remarquerez que le code actuel ne suit pas forcément tout cela. La raison est historique. La règle fut instaurée en cours de route, aussi, si vous trouvez du code non respectueux de ce standard, n'hésitez pas à le corriger.


==Structures des classes et champs==
==Structures des classes et champs==

Navigation menu