Bonjour,
J'ai une question pour améliorer la sémantique de mon code. Je débute souvent mes développements en regroupant les fonctions dans des librairies de Classes, de la façon suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class Foo1Utils { //Csttes de classe public static $csPrenom = 'Paul'; public static $csNom = 'Dupont'; static public function crie() { echo 'Je suis '.$csPrenom.' '.$csNom; } }Maintenant, je souhaiterais créer une classe - mettons Bar - permettant de créer un objet $oBar dans lequel je puisse appeler Foo1Utils::crie() et Foo2Utils::sappelle(). Je souhaiterais que Foo1Utils et Foo2Utils deviennent des fichiers utilisables dans le code, seulement par la classe Bar. Et grammaticalement, je voudrais ajouter une fluence d'indirection de la façon suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class Foo2Utils { //Csttes de classe public static $csPrenom = 'Alain'; public static $csNom = 'Dupond'; static public function sappelle() { echo 'Je suis '.$csPrenom.' '.$csNom; } }
$oBar->Foo1Utils::crie() et $oBar->Foo2Utils::sappelle(), voire mieux i.e. $oBar->foo1->crie() et $oBar->foo2->sappelle().
Alors, je me suis dis que je pourrais commencer par modifier Foo1Utils et Foo2Utils en 2 classes abstraites, ou 2 interfaces, ou en 2 Traits, pour m'obliger à les appeler explicitement depuis la classe Bar, les réclamant ainsi pour les injecter\utiliser\implémenter. Mais cela aboutit sur $oBar->crie() et $oBar->sappelle .
Comment faites-vous pour faire ce genre de réfection sémantique avec de la grammaire Php?
Cordialement.
Partager