<?php
namespace nur\b\params;

use nur\data\types\Metadata;

/**
 * implémentation de {@link IParametrable} pour une classe parente. les classes
 * dérivées doivent utiliser {@link Tparametrable}
 *
 * la classe qui utilise ce trait *doit* définir une constante
 * PARAMETRABLE_PARAMS_SCHEMA
 *
 * NB: on ne met ici que les méthodes qui doivent pourvoir être surchargées.
 * toutes les autres méthodes doivent être dans {@link _Tparametrable0}
 */
trait Tparametrable1 {
  use _Tparametrable0;

  /** obtenir la destination de certains paramètres si elle diffère de $this */
  protected function getParametrableParamsParametrables(): ?array {
    return null;
  }

  /** méthode appelée après avoir initialisé les paramètres */
  protected function afterSetParametrableParams(array $modifiedKeys, ?Metadata $md=null): void {
  }
}