Je travaille sur un projet en utilisant graphql-php. Il y a an example ce qui suggère la création d'une classe comme ceci:Nom de la méthode de classe dynamique dans php
use Project\CategoryType;
use Project\PageType;
class Types {
private static $page;
private static $category;
public static function page() {
return self::$page ?: (self::$page = new PageType());
}
public static function category() {
return self::$category ?: (self::$category = new CategoryType());
}
}
plus tard je peux utiliser ces méthodes de classe comme ceci:
Types::page()
ou Types::category()
Cela fonctionne très bien. Cependant, je pense que c'est un anti-pattern et pourrait être optimisé. Au fur et à mesure que le projet grandit, le nombre de fonctions similaires et de champs de classe privée augmente et cela devient gênant. Existe-t-il un moyen de refactoriser la classe afin que je n'aie pas à ajouter manuellement une fonction pour chaque type, mais appelle quand même les méthodes de classe comme je le fais maintenant? (Types::page()
).
Oui, cela semble être la clé. Merci beaucoup. Voulez-vous s'il vous plaît poster une réponse afin que je puisse l'accepter ou devrais-je poster la solution complète moi-même? – Ssey
Bienvenue. heureux d'entendre que cela a aidé. – tan