Intercepter un appel de classe
Bien le bonjour.
J'essaie de faire un truc qui semble apparemment impossible, mais peut-être que vous avez la réponse à mon problème.
J'ai actuellement un gros site que je suis en train de refactorer afin de le rendre plus simple et plus maintenable, et je veux utiliser la puissance des namespaces pour cela. Mon but est de pouvoir ajouter une classe dans un namespace "prioritaire" afin qu'elle soit prise automatiquement en compte sans que j'ai à toucher au code déjà existant.
Exemple :
Fichier "Specifique/Objet.php"
Code:
1 2 3 4
|
namespace Specifique;
class Objet extends \Commun\Objet { (...) } |
Fichier "Commun/Objet.php"
Code:
1 2 3 4
|
namespace Commun;
class Objet { (...) } |
Fichier "Commun/Partie.php"
Code:
1 2 3 4 5
|
namespace Commun;
class Partie { (...) }
} |
index.php
Code:
1 2 3
|
$objet = new Objet();
$partie = new Partie(); |
Ce que je veux faire, c'est que l'instanciation de la classe Objet pointe sur la classe du namespace Specifique, et que l'instanciation de la classe Partie pointe sur la classe du namespace Commun. Si je venais à supprimer la classe \Specifique\Objet, le code irait automatiquement prendre en compte la classe \Commun\Objet.
Je pensais qu'il existait une fonction, à l'image de la méthode magique "__call()" pour les méthodes de classe, qui me permettrait d'intercepter l'appel à ces classes et d'en faire ce que je veux, mais je ne parviens pas à trouver, ni à concevoir, un tel système.
Auriez-vous une idée ? :(
Merci d'avance.