I template sono sempre di merda alla fine, sono tutti HTML che viene modificato per funzionare nel sistema:
<h1><?php echo $cTitle; ?></h1>
echo "<h1>", $cTitle, "</h1>";
print("<div>" . $cContent . "</div>");
<h1>{{cTitle}}</h1>
<h1 data-content="cTitle"></h1>
eccetera eccetera.
Alla fine qualcosa deve essere identificato come il luogo in cui dovresti mettere il contenuto. Niente da fare al riguardo. Quindi cosa è meglio? Nessuno di loro, è una questione di dettagli e una questione di gusti e dipende dal tuo progetto. Penso che i template siano una delle più vecchie discussioni attive tra gli sviluppatori di php senza alcuna risposta.
C'è un'altra ragione per cui non esiste una soluzione, è la separazione delle preoccupazioni. La vista (se usi MVC o qualcosa del genere) è il punto in cui definisci quale contenuto può arrivare da qualche parte. Questo perché, ad esempio, il controller non lo sa. C'è anche una ragione per questo: Il controller ha una scelta, vi darà un semplice esempio ora, ma nel mondo reale ci potrebbe essere un HTML e una vista XML:
//HTML:
<h1><?=$cTitle;?></h1>
//XML:
<xml>
<title><?=$cTitle;?></title>
</xml>
Quindi, devi farlo da qualche parte. Non ci sono altre opzioni reali disponibili. Se davvero non vuoi i modelli con i tag, puoi dividere il livello di visualizzazione in 2 livelli separati che potrebbero dare, ad esempio:
//template (a new layer below the view)
<h1>This is a demo title</h1>
//view code
$this->h1($cTitle);
Quindi potresti usare qualcosa come uno stile jQuery per trovare i tag giusti per assegnare il contenuto. In questo modo è possibile utilizzare un design HTML statico e riempire gli spazi vuoti anche se si interromperà ancora quando qualcuno cambia il formato del modello.
Quindi, alla fine, sì, abbiamo ancora bisogno di qualche tipo di tag all'interno dei modelli per rendere le cose davvero funzionali.
Non molto pertinente come risposta ma informativo: quando lavori con molti sviluppatori ci sono sempre preferenze sui template. Alla fine abbiamo deciso di andare per PHP nei template con lo sviluppatore lasciando scegliere il loro modo preferito. Se fanno eco o incorporano i tag php non fa molta differenza. Chiunque abbia una buona conoscenza di PHP può leggerli entrambi. Quindi c'è un po 'di libertà ma è chiaro quali opzioni scegliere. Alla fine non fa molta differenza con gli sviluppatori esperti finché il lavoro viene svolto bene e strutturato.