Creo molte viste nel mio lavoro come parte del modello MVC comune applicato nei framework Web come Code Igniter e Cake.
Inoltre aderisco alla massima seguente nel modo migliore: modelli grassi e oggetti della biblioteca che fanno la logica; controller skinny che rispondono al lato server delle azioni dell'utente; e viste che presentano i risultati delle richieste e forniscono l'interfaccia utente.
Questo mi porta ad una situazione in cui molte viste sono solo html, echos variabili e loop, con il markup che accompagna l'applicazione css e javascript. Bello e chiaro.
Tuttavia, in alcuni casi le visualizzazioni devono essere più complesse. Potremmo aver bisogno di fare cose diverse in base allo stato di ogni elemento in loop, ad esempio e talvolta questo diventa piuttosto complesso.
Il problema con questo è che l'identificazione applicata a html e php presto diventa fuori sincrono.
Un esempio molto semplice:
<ul>
<li> ... </li>
<li> ... </li>
<?foreach>
<li> ... </li>
<?endforeach>
</ul>
Ora abbiamo elementi li che sono alla stessa profondità nel documento di output ma non allo stesso livello nel codice. Se iniziamo ad usare altre strutture di controllo, questo può peggiorare:
<ul>
<li> ... </li>
<li> ... </li>
<?foreach>
<li> ... </li>
<?if>
<li> ... </li>
<?endif>
<?endforeach>
</ul>
E così via ...
C'è un modello ben utilizzato che posso seguire per minimizzare questo problema anche con viste complesse?