Secondo post, per oggi
Vorrei chiedervi un parere su come mandare in output elementi html in una struttura ad oggetti.
Nel mio progetto infatti ho una serie di classi che si occupano di tutta la logica, come insegnano i vari pattern di design a disposizione. Ora sono al punto in cui i dati generati devono essere visualizzati, diciamo in una tabella; si apre un bivio di fronte a me.
La prima strada prevede un metodo di una classe (che chiamerò "visualizzatore") con il quale stampare a video tutta la tabella. Ad esempio (pseudocodice)
Codice PHP:
function mostraUtenti()
{
echo <table>;
for (...)
{
echo
<tr>
<td>".$valore[$indice]."</td>
</tr>
}
echo </table>;
}
Questo metodo stampa TUTTO, codice della tabella compreso; così nel file php che conterrà anche l'html io non dovrò fare altro che richiamare quella funzione.
Il secondo approccio che mi è venuto in mente è quello di far restituire a mostraUtenti() un array di valori che verrà poi ciclato nella pagina che conterrà l'html.
Una cosa del genere:
Codice PHP:
function mostraUtenti()
{
for (...)
{
$out[$indice] = qualche_operazione($valore[$indice]);
}
return $out;
}
che nella pagina finale dell'html sarà utilizzato così:
Codice PHP:
<table>
<?php
$valori = $visualizzatore->mostraUtenti();
for ($i = 0; $i < count($valori); $i++)
echo "<td>".$valori[$i]."</td>";
?>
</table>
Ho la sensazione che il secondo metodo sia più efficace, soprattutto nel caso debba arricchire il codice con css o comunque strutturazioni che vanno al di fuori della programmazione php.
Voi cosa ne pensate?
Come sempre vi ringrazio in anticipo.