Simplifier vos arguments !

2015mai17

Tout le monde est confronté à l’évolution des fonctions (ou méthodes) lors de la création de projets en PHP (ou tout autre langage).

Cela implique :

  • la nécessité de multiplier le nombre d’arguments
    • nouvelles fonctionnalités
  • d’ajouter des valeurs par défaut à certains paramètres
    • pour ne pas avoir à modifier les différents appels à cette même fonction depuis vos anciens fichiers
  • de devoir lors de l’appel à cette fonction, renseigner tous les paramètres par leur valeur par défaut si le paramètres que vous souhaitez renseigner se trouve en dernière position

1 seul argument, mais un tableau d’arguments !

Vous voulez en finir avec tout ça, à la manière de jQuery ($.extend), et de WordPress, indiquez 1 seul argument à vos fonction et définissez les comme ci-dessous :

<?php
 /**
 * ma superbe fonction avec 1 argument
 * @param  args      mon tableau d'argument
 *                  - arg1    explication 1
 *                  - arg2    explication 2
 */
 function foo($args=array()){
  $defaults=array(
  'args1' => 'bar',
  'args2' => 'foobar'
  );
  //merge votre tableau d'argument et le tableau de valeurs par défaut
  $args=array_replace_recursive($defaults, $args);

  //suite de votre fonction
 }
?>

Avec ce système, plus besoin de se souvenir de l’ordre des arguments, des valeurs par défaut si vous souhaitez n’utiliser que le dernier argument.

Cela rend également l’évolution de votre fonction plus simple car cela évite de se retrouver avec trop d’arguments. (il y a toujours la solution de recréer une autre fonction qui appellera la première mais bon…)

Commentaires