Wie könnte eine Klasse zum Erstellen von Webseiten aussehen?

Parantatatam

mag Cookies & Kekse
Hallo,

ich habe mal wieder eine kleine Frage. Und zwar überlege ich schon seit einiger Zeit, wie ich am besten eine Klasse erstelle mit der ich Templates einladen kann, JavaScript-Dateien, CSS-Dateien, Seitentitel setzen et cetera. Eigentlich alles, was man so auf einer Webseite benötigen könnte. Jetzt stellt sich bei mir immer die Frage, wie strukturiere ich diese Klasse am besten? Was für Methoden brauche ich? Wie binde ich Conditional Comments ein? Wie kann ich trotz das ich Templates benutze noch HTML-Elemente hinzufügen, oder sollte ich das doch lassen? ... Die Fragen hören nicht auf. Ich bitte euch hiermit, wenn ihr gewillt seit mir zu helfen, den symbolischen ersten Stein für die Klasse für mich zu legen oder zu mindestens diesen Stein in meinen Gedanken zum Rollen zu bringen.

Vielen Dank für eure Mühe schon im Voraus!
 
Also im Grunde willst Du eine Template-Klasse erstellen, richtig?

In meiner Klasse verzichte ich vollkommen auf irgendwelchen Code im HTML. Alles was irgendwie einer Bedingung unterliegt wird im PHP-Code geregelt. Dort wiederum gibt es aber keinen HTML-Code.
Alles was benoetigt wird kommt aus Templates. Das koennen grosse Templates fuer die ganze Seite sein, kleinere Templates fuer Seitenbereiche, z.B. ein Formular oder "Mikro-Templates" welche nur ein Tag beinhalten, z.B. einen Link oder ein Bild.

Das einzige meiner Projekte das dies soweit konsequent umsetzt ist mein EasyPMS, hier im Einsatz zu sehen.
Dass das so karg aussieht hat aber keineswegs was mit Limitierungen meiner Template-Klasse zu tun, vielmehr liegt das daran dass ich nicht wirklich viel Zeit in das Design gesteckt habe.

Funktionen brauchst Du nicht viele in der Klasse. Meine Klasse kommt mit 4 Methoden aus:
  • __construct(): Liest das Template ein, durchsucht es nach Platzhaltern und legt die Arrays fuer die Daten an.
  • __set(): Fuegt Daten in einen Platzhalter ein.
  • __get(): Liest die aktuellen Daten eines Platzhalters aus.
  • output(): Ersetzt die Platzhalter durch die gesetzten Daten und gibt das Template aus.

Zu begutachten ist die Klasse, wie bei meinen Klassen ueblich, ueber den Link in meiner Signatur.
 
Mh, du hast mich fast überzeugt, nur bin ich jemand, der auf einen "schönen" Quelltext steht (also, dass öffnende Tags (eine Ausnahme sind nur <b>, <i>, <u>, <strong>, <em> et cetera) in der nächsten Zeile dafür sorgen, dass die Tags ein Leerzeichen weiter hineingeschoben beginnen). Wie könnte man das Problem lösen?
 
Ich hab vor langer Zeit mal einen HTML-Formatter geschrieben.
Problem beim Einsatz von Templates ist ja oft dass der Content gern aussieht wie Kraut und Rueben, wenn er nicht sogar einfach nur in einer Zeile steht.
Sowas koenntest Du auch machen, entweder direkt in der Klasse, oder aber, was meiner Meinung nach besser waere, am Ende bevor die fertige Seite ausgegeben wird.

Ich persoenlich finde es aber nicht so wichtig wie der generierte HTML-Code aussieht, denn da schaut ja eh kaum einer rein, und dem Browser ist die Formattierung egal.
 
Das mag sein, aber da ich selbst in meinen PHP-Skripten haarklein darauf achte, dass da ja keine Tabulatoren drin sind und das das ja alles schön strukturiert ist. Und ich finde, es zählen auch die inneren Werte (der Quelltext) einer Webseite. Ja, also so ein HTML-Formatirrer wäre schon praktisch. Könnte man erfahren, wie dein Ansatz aussah?
 
Ich glaub ich hab das Ding irgendwann mal irgendwo hier gepostet. Weiss aber nicht mehr wo.
Auf meiner Festplatte hab ich den Code aber glaub ich nicht mehr.
 
Oha, dann werde ich mich mal durch die Tiefen deiner Beiträge graben. Falls ich nichts finde, dann melde ich mich noch mal hier :)
 
Danke für den Vorschlag, nur leider kann ich nicht darauf vertrauen, dass diese Bibliothek auf dem Server installiert ist. Ich werde mal schauen, ob es da was anderes gibt.

an Dennis Wronka: Leider habe ich nichts gefunden. Die Suchbegriffe "HTML" und "Format" lieferten nicht die gewünschten Ergebnisse.
 
Hab auf die Schnelle auch nichts gefunden. Und irgendwie hab ich auch keine Lust ein paar tausend Posts zu durchwuehlen. ;)

Hab aber mal durch meine Festplatten gestoebert ob der Code noch da irgendwo Staub sammelt, ist aber scheinbar irgendwann mal entsorgt worden.
 
Zurück