Originariamente inviato da jan267
Ciao a tutti,
secondo me usare il codice php in un template è davvero un'idea pessima.
La soluzione migliore (che fra l'altro io utilizzo nel template engine che ho creato io) è quella suggerita da andr3a.
Ossia emulare il codice php e poi trasformarlo...
forse è leggermente più lento ma la sicurezza è di sicuro maggiore!
.
.
.
un pò quello che fa il lentissimo smarty e tanti altri come lui, però giusto una domanda: se devo lavorare con un, ad esempio, database oracle? o un webservice? come aggiri la cosa?
devi prevedere TUTTE queste situazioni a livello di template engine o permettere la possibilità di richiamare funzioni/metodi, includere file e cosi via rendendo infinitamente complesso il template engine, rendendolo soggetto potenzialmente a maggiori bug e vulnerabilità
inoltre con questo sistema il codice del template non è direttamente editabile con un qualsiasi WSYWIG che supporti PHP (è c'è ne sono tanti) perché dovrebbe supportare il tuo meta linguaggio nativamente
Hai pienamente ragione!
Ma difatti lo pseudo-code è da usare in modo limitato!
Può essere utile ma è evidente che la maggior parte del codice php non deve andare in un template, ma nella pagina che lo richiama.
Per quanto riguarda la giustificata "ignoranza" del grafico, è un problema che ci sarà sempre.
quindi se io devo integrare i dati che il modulo/addon/componente mi passa per una specifica pagina con un webservice o con un database diverso o ancora con dei file xml sul disco devo andare a modificare la logica del componente ottenendo cosi due versioni diverse, o un'unica versione molto più complessa? no grazie 
Però il template riduce molto il rischio di manomissioni...
non riduce affatto nessun rischio: se possono modificare il template vuol dire che via ftp o via php, per qualche pagina fallata, hanno accesso ai file e a quel punto non gli interesserà più di tanto modificare i template perché possono accedere al sito e rubare tutti i dati
Il codice php deve stare fuori dal template...
è sconsigliato perché "rischia" di rendere il codice confusionario e "rischia" di essere lento, ma guarda che moltissimi template engine convertono il proprio meta-linguaggio in codice php perché altrimenti l'esecuzione sarebbe lenta da fare schifo
non ci sto niente con un set di preg ed un pò di codice a far diventare
codice:
<?php foreach ($resultset as $result) : ?>
<h2><?php echo $result->title; ?></h2>
<span class="date"><?php echo $result->published; ?></span>
<?php echo $result->excerpt; ?></p>
<?php endforeach; ?>
<p class="pager">
<?php foreach ($pagination as $link) : ?>
<?php echo $link->index; ?>
<?php endforeach; ?>
create
</p>
cosi
codice:
<?php
foreach ($resultset as $result)
{
echo <<< HTML_EOF
<h2>{$result->title}</h2>
<span class="date">{$result->published}</span>
{$result->excerpt;}</p>
HTML_EOF;
}
echo " <p class=\"pager\">"
foreach ($pagination as $link)
{
{$link->index}
}
echo <<< HTML_EOF
create
</p>
HTML_EOF;
?>
ma quale sarebbe il reale vantaggio? un minimo di performance in più? si? e quanti potenziali bug introduco nel motore di parsing e quanto lo faccio diventare grande? attualmente il mio TPL è 27kb, di cui 5kb sono solo eccezioni ed un altro paio di kb sono le intestazioni ... e da questi ci devi ancora togliere i commenti che inserisco una riga si e una riga no ... se dovessi fare una cosa del genere diventerebbe per lo meno 100kb di codice ... quasi 4 volte tanto ... potenazialmente almeno il 400% in più di possibilità di beccare codice fallato ...
non conviene 
------
@whisher
XSLT è bello, sicuramente, ma siam sempre li
aumentare il numero componenti per utilizzarne uno aumenta la complessità e riduce la flessibilità e nel caso di XSLT entrano in ballo tanti fattori
sicuramente avresti il vantaggio di poter far convertire l'xslt direttamente al browser scaricando di molto il lavoro del server, però aumenteresti consistentemente il lavoro di sviluppo e realizzazioni del tutto :\