Website per PHP an MySQL - Grundkonzepte

Im Falle des Menu wird in etwa folgendes dahinter stecken:

PHP:
<ul class="menu_oben">
   <li><a href="">Menupunkt</li>
   .
   .
   .
</ul>

Das kann der Designer über CSS ansprechen und wunderbar positionieren und gestalten. Ich denke es ist unvermeidbar, das etwas HTML im PHP Code enthalten ist. Schließlich muss ja im Falle des Menüs das <li> Element mit einer foreach bzw. while Schleife behandelt werden. Was man zusätzlich machen kann, um dem Designer mehr Spielraum zu bieten, ist folgendes:

PHP:
<?php Menu::getInstance()->holeMenu('oben', 'verschachtelt');?>

bzw. gleich:

PHP:
<?php Menu::getInstance()->holeMenuVerschachtelt('oben');?>

D.h. verschiedene Menüstrukturen anzubieten. Spätestens dann ist es vollkommen ausreichend für den Designer.


Ich betrachte die ganze Geschichte auch immer vor dem Hintergrund der Performance. Natürlich sieht es schöner und eleganter aus wenn ich schreibe:

PHP:
{$HOLE_MENU_VERSCHACHTELT[oben]}

an jener Stellt im Template. Doch muss das wirklich sein dass dieser Ausdruck durch den Parser gejagt wird und im Endeffekt nichts anderes passiert als wenn ich gleich den etwas komplexeren PHP-Code schreibe?
 
PHP-Code:
Code:
<ul class="menu_oben"> 
   <li><a href="">Menupunkt</li> 
   . 
   . 
   . 
</ul>
Das kann der Designer über CSS ansprechen und wunderbar positionieren und gestalten. Ich denke es ist unvermeidbar, das etwas HTML im PHP Code enthalten ist. Schließlich muss ja im Falle des Menüs das <li> Element mit einer foreach bzw. while Schleife behandelt werden.

Ja, nee... das Menü wird ja hoffentlich fest kodiert sein.

Mein nur... 'ne wirklich saubere Trennung wär halt eine ganz schnöde HTML Datei vom Webdesigner und PHP hakt sich dann in die HTML Datei und macht die Seite dynamisch.

Oder zumindest nur das Einfügen harmloser Parameter in den Tags, die der Webdesigner
einfach ignorieren kann.

Das ganze dann bitte mit ausgeklügelter Logik, wie Microsoft VS sie bei der Erstellung von
GUIs mit C# bietet. (Änderung in der GUI -> automatische Anpassung des C# Codes)


Hab jetzt 'n dreiviertel Jahr PHP programmiert... aber irgendwie... find ich dieses
Durcheinander und Hin- und Hergezappe zwischen PHP und HTML einfach schrecklich.
Bauste dann noch mit Strings HTML Tags zusammen, siehste irgendwann gar nix mehr,
weil die Syntaxcolorierung natürlich auch futsch ist...
 
Das Arbeiten mit Klassen macht einiges übersichtlicher und einfacher, so geht es jedenfalls mir. Und ich denke es ist nicht zu viel verlangt, wenn der Webdesigner in seinem Template schreiben muss:

PHP:
<?php Menu::ZeigeMenu('oben', 'verschachtelt'); ?>

Ich jedenfalls würde es nicht einsehen, aus optischen Gründen und Bequemlichkeit einen Ausdruck wie

PHP:
{ZeigeMenu_oben_verschachtelt}

zu verwenden und durch eine Template Engine zu jagen.

Jeder Webdesigner sollte wenigstens Grundkenntnisse von if, else, foreach und ähnlichem haben, das ist selbst bei Template Engines manchmal unvermeidbar. Und wieso dann nicht gleich den eigentlichen PHP Code schreiben? Nur weil es nicht schön aussieht? Ich kann nur nochmal betonen, dass vor allem OOP eine durchaus optisch ansprechende Lösung ist. Und nicht zuletzt findet heutzutage die eigentliche Arbeit eines Webdesigner in der CSS Datei statt. Vorausgesetzt, dass der PHP Code ausreichend und sinnvolle Klassen/Ids ausweist, kann eigentlich nichts mehr schief gehen.
 
Zurück
Oben