Tout projet où l'on travaille en collaboration nécessite une cohérence et une stabilité fortes.
L'objectif de ces directives est de fournir un cadre à respecter pour tout le code de Moodle. Il est vrai que certaines parties plus anciennes du code ne les respectent pas toujours ; le code sera corrigé. Tout le nouveau code doit absolument respecter ces directives aussi précisément que possible.
Je suis conscient qu'il est ennuyeux de changer votre style si vous avez d'autres habitudes, mais comparez cet embêtement avec les gros ennuis qu'ont ultérieurement les personnes qui essaient de comprendre un code composé dans des styles différents. Bien sûr il y a des avantages et des inconvénients à chaque style, mais le style de Moodle existe, alors tenez-vous y, s'il vous plaît.
BON : $quiz
BON : $errorstring
BON : $assignments (pour un tableau d'objets)
BON : $i (mais seulement dans de petites boucles)
MAUVAIS : $Quiz
MAUVAIS : $aReallyLongVariableNameWithoutAGoodReason
MAUVAIS : $error_string
define("FORUM_MODE_FLATOLDEST", 1);
function forum_set_display_mode($mode=0)
{
global $USER,
$CFG;
if ($mode)
{
$USER->mode
= $mode;
} else if (empty($USER->mode))
{
$USER->mode
= $CFG->forum_displaymode;
}
}
if ($quiz->attempts)
{
if ($numattempts >
$quiz->attempts)
{
error($strtoomanyattempts,
"view.php?id=$cm->id");
}
}
$var = 'some text without any
variables';
$var = "with special characters like a new line \n";
$var = 'a very, very long string with a '.$single.' variable in it';
$var = "some $text with $many variables $within it";
/**
* La description doit apparaître d'abord, avec des astérisques positionnés
* exactement comme dans cet exemple. Pour vous référer à une autre fonction,
* utiliser cette syntaxe : {@link clean_param()}. Après la description de la
* fonction, ajouter celle de chacun des paramètre de la façon suivante.
*
* @param int $postid Le type PHP est suivi du nom de la variable
* @param array $scale Le type PHP est suivi du nom de la variable
* @param array $ratings Le type PHP est suivi du nom de la variable
* @return mixed
*/
function forum_get_ratings_mean($postid,
$scale, $ratings=NULL)
{
if (!$ratings)
{
$ratings
= array(); //
Initialize the empty array
if ($rates
= get_records("forum_ratings",
"post", $postid))
{
//
Process each rating in turn
foreach
($rates as $rate)
{
... etc.
foreach ($objects
as $key =>
$thing) {
process($thing);
}
if ($x ==
$y)
{
$a
= $b;
} else if ($x ==
$z) {
$a
= $c;
} else {
$a
= $d;
}
$a = array()
ou $obj = new stdClass();
.optional_variable()
. Utilisez en lieu et place la fonction optional_param()
. Choisissez la valeur PARAM_XXXX correcte pour le type de données que vous attendez. Pour vérifier et assigner une valeur optionnelle à une variable, utilisez la fonction set_default()
.require_variable()
. Utilisez en lieu et place la fonction required_param()
. Choisissez la valeur PARAM_XXXX correcte pour le type de données que vous attendez.data_submitted()
qu'avec précaution. Avant son utilisation, n'oubliez pas de nettoyer les données.$_GET
, $_POST
ni $_REQUEST
. Utilisez la fonction required_param()
ou optional_param()
appropriée à vos besoins.if (isset($_GET['something']))
. Utilisez plutôt $something = optional_param( 'something',-1,PARAM_INT )
et effectuez ensuite un test correct pour vérifier si la valeur se trouve dans l'intervalle voulu, par exemple if ($something>=0) {...
.required_param()
, optional_param()
et les autres initialisations de variables initialisation au début de chaque fichier, de sorte qu'elles soient faciles à trouver.
. Lors du traitement du formulaire, vérifiez avec if (!confirm_sesskey()) {error('Bad Session Key');}
.clean_filename()
, pour autant que cela n'ait pas encore été fait par une utilisation adéquate de required_param()
ou de optional_param()
.addslashes()
avant d'être récrites dans la base de données. La fonction addslashes_object()
permet de traiter ainsi un objet complet de données.POST
(d'un formulaire avec method="POST"
), et non de données GET
(c'est-à-dire provenant de l'URL).$_SERVER
, en raison de problèmes de portabilité.clean_param()
avec le paramètre PARAM_XXXX adéquat au type de données.Version: $Id$