FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 2015
-
22 avril 2006 à 19:02
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 2010
-
26 août 2006 à 20:49
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 26 août 2006 à 20:49
Hello,
désolé, je n'avais jamais vu ce message...je réponds avec un peu de retard lol... ;-)
En bonne POO, il ne faut pas mélanger le html et la classe. Donc non. D'un autre côté, PHP génère du html...alors...c'est un peu chacun qui voit midi à sa porte, au fond.
PHP5 offre de base une méthode magique retournant l'objet sous forme de chaîne...on peut en déduire que les dév de php ne sont pas contre ce mélange (__toString).
cs_mfaraday
Messages postés144Date d'inscriptionvendredi 18 avril 2003StatutMembreDernière intervention 4 janvier 2010 28 avril 2006 à 21:09
Re
En fait ma question précédente n'est pas une question de possibilité mais d'opportunité...
Est-il plus opportun (utile ? logique ?) de mettre un méthode dans une classe retournant le html ou juste une fonction hors de la classe.
Florian
cs_mfaraday
Messages postés144Date d'inscriptionvendredi 18 avril 2003StatutMembreDernière intervention 4 janvier 2010 28 avril 2006 à 13:29
Salut
Je rebondit sur le commentaire de FhX et fait par la même une petite digression.
Je suis en train de développer des classes pour un projet perso et me posais justement la question concernant les fonctions retournant du (x)html... peut-on le faire dans une classe ou doit-on créer une fonction externe ?
Désolé pour ce petit écart...
Florian
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 24 avril 2006 à 10:08
FhX => je suis d'accord avec toi, j'aurais dû séparer. De même pour la mise en forme...mais là je suis moyennement d'accord lol. Disons que j'aurais dû faire une classe séparée, mais cela ne me dérange pas de faire une classe qui crée une mise en forme.
Au passage, le xml n'est PAS de la mise en forme...le xsl, oui... :-)
Si je ne l'ai pas fait, c'est parce que j'ai extirpé cette classe de mon projet au taf, et qu'on a bcp de classes déjà. Je ne voulais pas créer des classes supplémentaires avec uniquement une méthode (LogToHtml par exemple), pour que ce soit plus simple à utiliser au final, par mes collègues.
Par contre, une classe LogToXml, LogToFile...là je suis moins d'accord. Ca fragment bien trop, pour pas grand chose, à mon sens. La seule "sortie" que j'aurais effectivement dû faire, c'est LogToHtml. J'ai hésité, à vrai dire. Et on n'est pas obligé d'utiliser cette dernière méthode. J'ai bien fialli la virer, et mettre en forme uniquement dans log.detail.php (bref, dans une page php classique).
CouCou => par simple soucis de clarté. Quand on lit, on sait directement à quel libellé fait référence tel index numérique.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 24 avril 2006 à 09:10
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 22 avril 2006 à 19:02
Moi ce qui me gène, c'est que j'aurais bien vu ta classe de base qui fait un logging de base via les variables, et les classes qui étendent le tout niveau html.
Genre un truc comme ca :
Class oLogger {}
Class oLogToXml {}
Class oLogToFile {}
Class oLogToHtml {}
Class oLogToDatabase {}
Quelque chose comme ca... C'est plus joli moi jtrouve :)
Comme ca, dans ta classe de BDD par exemple, imaginons ca :
if (true === $log && substr (strtoupper (trim ($this->s_db_sql)), 0, 6) !== 'SELECT') {
if ( $debug 'xml' ) $ologged new oLogToXml;
$ologger->write_to_log(); // Qui sera une méthode commune à toutes les classes.
}
Quelque chose comme ca.
Tfacon, moi jdis ca, c'est que j'aime pas voir du HTML ou du XML ou n'importe quoi qui fasse de la mise en forme en sortie dans une classe :p
26 août 2006 à 20:49
désolé, je n'avais jamais vu ce message...je réponds avec un peu de retard lol... ;-)
En bonne POO, il ne faut pas mélanger le html et la classe. Donc non. D'un autre côté, PHP génère du html...alors...c'est un peu chacun qui voit midi à sa porte, au fond.
PHP5 offre de base une méthode magique retournant l'objet sous forme de chaîne...on peut en déduire que les dév de php ne sont pas contre ce mélange (__toString).
28 avril 2006 à 21:09
En fait ma question précédente n'est pas une question de possibilité mais d'opportunité...
Est-il plus opportun (utile ? logique ?) de mettre un méthode dans une classe retournant le html ou juste une fonction hors de la classe.
Florian
28 avril 2006 à 13:29
Je rebondit sur le commentaire de FhX et fait par la même une petite digression.
Je suis en train de développer des classes pour un projet perso et me posais justement la question concernant les fonctions retournant du (x)html... peut-on le faire dans une classe ou doit-on créer une fonction externe ?
Désolé pour ce petit écart...
Florian
24 avril 2006 à 10:08
Au passage, le xml n'est PAS de la mise en forme...le xsl, oui... :-)
Si je ne l'ai pas fait, c'est parce que j'ai extirpé cette classe de mon projet au taf, et qu'on a bcp de classes déjà. Je ne voulais pas créer des classes supplémentaires avec uniquement une méthode (LogToHtml par exemple), pour que ce soit plus simple à utiliser au final, par mes collègues.
Par contre, une classe LogToXml, LogToFile...là je suis moins d'accord. Ca fragment bien trop, pour pas grand chose, à mon sens. La seule "sortie" que j'aurais effectivement dû faire, c'est LogToHtml. J'ai hésité, à vrai dire. Et on n'est pas obligé d'utiliser cette dernière méthode. J'ai bien fialli la virer, et mettre en forme uniquement dans log.detail.php (bref, dans une page php classique).
CouCou => par simple soucis de clarté. Quand on lit, on sait directement à quel libellé fait référence tel index numérique.
24 avril 2006 à 09:10
0 => 'UNKNOWN',
1 => 'SELECT',
2 => 'UPDATE',
3 => 'INSERT',
4 => 'DELETE'
);
pourquoi ne pas mettre :
private $aLevels = array (
'UNKNOWN',
'SELECT',
'UPDATE',
'INSERT',
'DELETE'
);
?
22 avril 2006 à 19:02
Genre un truc comme ca :
Class oLogger {}
Class oLogToXml {}
Class oLogToFile {}
Class oLogToHtml {}
Class oLogToDatabase {}
Quelque chose comme ca... C'est plus joli moi jtrouve :)
Comme ca, dans ta classe de BDD par exemple, imaginons ca :
if (true === $log && substr (strtoupper (trim ($this->s_db_sql)), 0, 6) !== 'SELECT') {
if ( $debug 'xml' ) $ologged new oLogToXml;
$destId = (isset ($_SESSION['dest_id']))?$_SESSION['dest_id']:0;
$ologger -> init ($this -> s_db_sql, $destId);
$ologger->write_to_log(); // Qui sera une méthode commune à toutes les classes.
}
Quelque chose comme ca.
Tfacon, moi jdis ca, c'est que j'aime pas voir du HTML ou du XML ou n'importe quoi qui fasse de la mise en forme en sortie dans une classe :p