PHP objet et HTML

Publié le par Marie-Ange MALROUX

Voici la problématique que j'ai rencontrée en essayant de me mettre à l'objet sérieusement :

J'avais créé mon site internet sans utiliser l'orienté objet. Aujourd'hui c'est une notion qui m'intéresse.

J'ai créé une classe page() qui gère l'affichage des différentes rubriques. La première méthode est appelée pour afficher les news.

Ce qui me dérangeait c'était le fait d'avoir du html dans une méthode php.

Code :
 
class page {
var $titre;
var $idPere;
var $idPage;
 
function affNews() {
$strSQL = "SELECT idNews, titreNews, news, imgNews FROM news ORDER BY idNews DESC LIMIT 3";
$resultat = reqSQL($strSQL);

while($tabl_result=mysql_fetch_array($resultat)){
echo "<TABLE width='100%' border='0' cellspacing='0' cellpadding='0'>
<TR><TD><TABLE width='100%' border='0' cellspacing='0' cellpadding='0'>
<TR><TD width='11'><IMG src='images/tit1.gif' width='11' height='34'></TD>
<TD background='images/tit2.gif' class='tit'>"
.$tabl_result['titreNews']. "</TD>
<TD width='14'><IMG src='images/tit3.gif' width='14' height='34'></TD>
</TR>
</TABLE></TD>
</TR>"
;
echo"<TR><TD class='txt2'><DIV style='text-align:justify'>".nl2br($tabl_result['news']). "</DIV></TD></TR>
</TABLE><BR/>"
;
} // while
}
}
 
J'ai finalement posté sur le forum www.developpez.net et ai obtenu une réponse intéressante de Mr N. (merci encore !). J'ai pensé que d'autres petits développeurs en herbe comme moi se poseraient peut-être un jour la même question alors je vous copie sa réponse :

Pour moi je ne vois aucun problème dans ton code. si tu as des classes/méthodes d'affichage, c'est normal qu'elles affichent quelque chose (et donc ici du html).
Personnellement, et sans connaitre plus en détail le reste de ton projet, je ne toucherais rien.
[...] mais, éventuellement, remplacement des longs echo par du code html.

Ce qui donne un code plus propre et évite au php de faire des concaténation de chaînes :

Code html :
while($tabl_result=mysql_fetch_array($resultat)){
?>
<TABLE width='100%' border='0' cellspacing='0' cellpadding='0'>
<TR><TD><TABLE width='100%' border='0' cellspacing='0' cellpadding='0'>
<TR><TD width='11'><IMG src='images/tit1.gif' width='11' height='34'></TD>
<TD background='images/tit2.gif' class='tit'>
<?php echo $tabl_result['titreNews'] ?>
</TD>
<TD width='14'><IMG src='images/tit3.gif' width='14' height='34'></TD> </TR>
</TABLE></TD>
</TR>
<TR><TD class='txt2'><DIV style='text-align:justify'><?php echo nl2br($tabl_result['news']) ?>
</DIV>
</TD>
</TR>
</TABLE><BR/>
<?php
}
?>
Bon codage !

Publié dans PHP

Commenter cet article