Bonjour,

J'avais dans un premier temps une classe abstraite avec une méthode abstraite définie dans chacune des classes enfants :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
abstract class Parent {
  abstract public function isValid($value);
}
 
class Enfant {
  public function isValid($value) {
    return true;
  }
}
Tout allait bien dans le meilleur des mondes ; sauf que je souhaite ajouter une précondition à toutes les validations : vérifier que $value est un numérique.

Du coup, je souhaiterais avoir quelque chose du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
abstract class Parent {
  public function isValid($value) {
    if (is_numeric($value)) {
      return ENFANT->isValid($value);
    } else {
      return false;
    }
  }
}
 
class Enfant {
  public function isValid($value) {
    return true;
  }
}
Une solution simple serait de définir une méthode d'un autre nom et de la définir abstraite dans la classe parente et au lieu d'appeler enfant->isValid faire plutôt un $this->autreMethode($value). Mais pour des raisons de lisibilité du code je préférerais éviter (et aussi par curiosité !).

Merci pour vos pistes !