web-dev-qa-db-fra.com

Manière correcte d'appeler / d'utiliser les paramètres du plugin

Je sais que cela pourrait être interprété comme une question mineure ou novice, mais j'aimerais améliorer mon code. Ainsi, dans une perspective de meilleure pratique de codage, comment appeler/utiliser les paramètres de plug-in? Mes deux exemples de code feront la même chose, mais quelle est la bonne façon de le faire?

$my_parameter = $this->params->get('my_parameter', 'default_value');

if ($my_parameter) 
{
    ...
    $xpto = $my_parameter;
    ...
}

ou

if ($this->params->get('my_parameter', 'default_value')) 
{
    ...
    $xpto = $this->params->get('my_parameter', 'default_value');
    ...
}
1
n.h.

Techniquement, dans PHP vous pouvez également le faire:

if ($my_parameter = $this->params->get('my_parameter', 'default_value')) 
{
    ...
    $xpto = $my_parameter;
    ...
}

Ceci assigne la variable et vérifie ensuite que la variable est 'true', ce qui signifie PHP signifie qu'il ne s'agit pas de null, false, '', ou 0. Donc, en fonction de votre valeur par défaut, l'instruction if pourrait être inutile.

Ma recommandation pour toute question de style de code est d'éviter autant que possible les doubles emplois. Je n'aime pas la deuxième méthode, car vous avez dupliqué la valeur par défaut. Si vous décidez de changer cette valeur par défaut, vous devez vous rappeler de la mettre à jour à deux endroits. (Et même si cela semble idiot aujourd'hui, vous oublierez probablement de mettre à jour les deux emplacements à un moment donné, alors épargnez-vous la peine et définissez une valeur par défaut une fois!)

La première méthode vous permet de définir cette valeur une fois, à cet endroit. (Vous pouvez également faire des choses comme ajouter une constante de classe avec la valeur par défaut, puis la référencer pour éviter de dupliquer la valeur.)

Pour savoir si vous devez l'assigner à une variable ou non, la question principale est la suivante: utilisez-vous à nouveau la variable? Si vous avez juste besoin de vérifier que cela est vrai, passez l'appel pour obtenir la valeur dans l'instruction if et ne l'affectez pas à une variable. Si vous voulez vérifier que le paramètre est l'une de plusieurs options, essayez peut-être un commutateur:

switch($this->params->get('my_parameter', 'default_value')) {
    case 'option_a':
         ...
         break;
    case 'option_b':
         ...
         break;
    default:
         ...
}

Enfin, si vous utilisez réellement cette valeur (soit en mathématiques, soit en l’imprimant), stockez-la dans une variable!

6
David Fritsch

Juste pour clarifier, votre déclaration if ne fait que vérifier si le paramètre a une valeur qu’il fera si une valeur par défaut a été définie. C'est pas en train de vérifier si le paramètre a une valeur spécifique.

Les deux extraits de code que vous avez fournis font exactement la même chose, vous pouvez donc utiliser l'un ou l'autre.

Personnellement, je définis toujours mes paramètres en tant que variable, comme vous l'avez fait dans le premier exemple. Normalement (dans JS par exemple), je ne le ferais que si je l'utilisais plus d'une fois, mais j'ai tendance à définir chaque paramètre comme une variable, peu importe le nombre de fois où il est utilisé pour que tout soit cohérent.

0
Lodder