<?php
namespace nur\b\params;

/**
 * Class IParametrable: une classe qui peut être paramétrée de façon générique
 *
 * Une classe qui implémente cette interface doit définir une constante nommée
 * PARAMETRABLE_PARAMS_SCHEMA qui indique le type associé à chaque paramètre
 * et sa valeur par défaut le cas échéant
 *
 * Chaque paramètre a une propriété correspondante dont le nom est construit
 * avec le préfixe pp, e.g pour le paramètre the_value, la propriété doit être
 * nommée $ppTheValue
 *
 * Si la propriété doit être spécifiée avec une méthode, la méthode doit aussi
 * avoir le préfixe pp, e.g pp_setTheValue() pour reprendre l'exemple ci-dessus.
 * Cette méthode est considérée comme privée à l'implémentation. s'il faut
 * accéder au paramètre par ailleurs, il faut faire des getters et/ou setters à
 * part
 */
interface IParametrable {
  /** spécifier les paramètres */
  function setParametrableParams(?array $params): void;
}