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"
Fichier "Commun/Objet.php"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 namespace Specifique; class Objet extends \Commun\Objet { (...) }
Fichier "Commun/Partie.php"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 namespace Commun; class Objet { (...) }
index.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 namespace Commun; class 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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $objet = new Objet(); $partie = new Partie();
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.





Répondre avec citation





Partager