ben pour la config d'un site j'avais un singleton qui prenait en paramètre un fichier ini.
Mais parfois, pour certaines actions qui nécéssitaient d'avoir un droit d'écriture dans la DB ou accès à certaines pages d'admin, la config pouvait temporairement changer.
En gros c'était géré avec des exceptions : si tu passes un .ini au singleton alors qu'il est déjà initialisé, il te disait gentiment d'aller te faire voir, du coup tu devais utiliser une méthode changeConf, puis plus tard revenir à la configuration initale.
Mais bon c'était lourd, j'ai viré le singleton et je créais une nouvelle instance avec les paramètres d'admin en cas de besoin. Pour une classe très lourde je veux bien mais pour un fichier ini à la con ça sert pas à grand chose ( Dans le cadre de mon site qui était un petit site, avec peu de risques d'avoir 50 instances simultanément.)
Et c'est pourquoi je n'aime pas le singleton quand on fait des choses simples. Quand t'as 200 lignes de codes seulement suceptibles d'instancier une config tu peux très bien t'assurer qu'une seule instance existera.
Edit: disons plutot que je l'utilisais alors que je n'en avais pas besoin, le design pattern en lui même ne peut être une mauvaise chose.
Mais parfois, pour certaines actions qui nécéssitaient d'avoir un droit d'écriture dans la DB ou accès à certaines pages d'admin, la config pouvait temporairement changer.
En gros c'était géré avec des exceptions : si tu passes un .ini au singleton alors qu'il est déjà initialisé, il te disait gentiment d'aller te faire voir, du coup tu devais utiliser une méthode changeConf, puis plus tard revenir à la configuration initale.
Mais bon c'était lourd, j'ai viré le singleton et je créais une nouvelle instance avec les paramètres d'admin en cas de besoin. Pour une classe très lourde je veux bien mais pour un fichier ini à la con ça sert pas à grand chose ( Dans le cadre de mon site qui était un petit site, avec peu de risques d'avoir 50 instances simultanément.)
Et c'est pourquoi je n'aime pas le singleton quand on fait des choses simples. Quand t'as 200 lignes de codes seulement suceptibles d'instancier une config tu peux très bien t'assurer qu'une seule instance existera.
Edit: disons plutot que je l'utilisais alors que je n'en avais pas besoin, le design pattern en lui même ne peut être une mauvaise chose.