J'ai une classe abstraite pour déplacer des données d'une base de données à une autre, et parfois les données requises pour créer les entrées de base sont différentes, en raison de la présence d'une ancienne table dans la base de données de destination qui comprend des instructions pour localiser les données dans la source. De toute évidence simplifiée, voici où le problème entre en jeu:Signatures de méthodes multiples pour une seule surcharge abstraite/abstraite
abstract class foo
{
protected abstract function createBaseEntry($id);
}
Parfois, je ne ai besoin d'une ID passé à cette fonction, mais dans certains cas, je dois passer deux. Bien sûr, si la signature de la méthode concrète ne correspond pas à la méthode abstraite, PHP déclenchera une erreur fatale et stoppera l'exécution. Autre que de prédéfinir avec null le nombre maximum d'arguments et de modifier chaque classe concrète qui prolonge celui-ci, y a-t-il un moyen de contourner cela?
Je pense que je vais juste le changer pour accepter un enregistrement, puis laisser chaque implémentation déterminer ce qu'il faut faire de cet enregistrement; cependant, puisque votre suggestion est manifestement correcte, je vais l'accepter et aller de l'avant avec ma vie. Le projet critique dans le temps, ne peut pas tout rattraper sur un détail =) – Dereleased