Welchen Code meinst Du denn?
Programmcode (Logik) von Darstellung (HTML, CSS)
Wenn man eine Website baut, dann aus HTML und CSS. Das eine
ist für die Semantik zuständig, das andere für Aussehen und
Design. Beides trennt man strikt voneinander, insb. durch
externe Stylesheets.
So soll es ja auch sein.
Vielleicht meinst Du auch die Trennung einen Schritt weiter:
Man baut sich (z.B.) eine HTML-Seite, die die Grundstruktur
für den Inhalt festlegt und deren Aussehen mit einem externen
Stylsheet definiert wird.
An den Stellen, wo wechselnder Inhalt hin soll, includet man
einfach die gewünschten Dateien, die den Content enthalten. So
hast Du auch schon ein primitives Templatesystem.
Hier ist natürlich die Frage, was ist wenn der dynamische Code z.B. in Tabellen dargestellt werden soll. Schreibst du dann in die Tabelle in den PHP Code? Hier liegt z.B. ein sehr offentsichtlicher Vorteil von Templates. Man kann die Tabelle im Template erstellen und später nur mit Daten füttern lassen. Die Engine kümmert sich um den Rest. Man kommt zwar nicht um etwas Logik rum, aber dafür hat z.B. Smarty etc auch ihre „foreach und if-else“-Anweisungen.
ich selbst nutze ganz gerne Smarty und habe mittlerweile eine von Smarty erbende Klasse erstellt, welche mir mein „Masterlayout“ aus verschiedenen Templates zusammen baut (Header, Footer, Menü etc)
Je nach Seite wird dann noch ein eigenes Template für den Content eingebunden. Die „extendedSmarty“-Klasse kann zwar noch etwas mehr, aber das ist jetzt nicht so wichtig.
Meine PHP Dateien erzeugen lediglich Daten und weisen diese der Engine zu, welche dann über Kontrollstrukturen den Inhalt ausgibt.
Kurz und knapp. in meinen PHP Dateien befindet sich kein bisschen HTML.
Die Einzige andere Möglichkeit wirklich Logik von Design zu Trennen wäre Model View Control (MVC)