#1
| |||
| |||
dynamisch oder statische Seiten/ Blöcke integrierenIch bastle an meiner Seite und überlege mir gerade ein System für die Seitenaufrufe und Integration der Blöcke. Es gibt: - html- und php-Seiten/ Blöcke aus Dateien - html- und php-Seiten/ Blöcke aus der DB Alle diese Seiten/ Blöcke haben einen Eintrag in der DB (Table pages bzw blocks), welcher die Zugriffsrechte uws. regelt. Die Seiten/ Blöcke aus Dateien werden einfach mittels include eingefügt, während diese aus der DB mittels eval ausgeführt werden. Nun überlege ich diese Seiten/ Blöcke aus der DB, anstatt den Code aus der DB mit eval auszuführen, einfach in Dateien zu cachen und diese dann wiederum nur zu includen. Dies hätte den Vorteil das ich auf eval, was ein Sicherheitsrisiko sein kann, verzichten kann und alle Aufrufe einfach per include abgewickelt werden können. Deshalb überlege ich mir grade: 1.) Soll ich ausschließlich mit Dateien und include arbeiten. 2.) Sollen die gecachten Dateien im Cache-Ordner abgelegt werden. 3.) Oder diese "gecachten" Dateien einfach wie "richtige" Blöcke angelegt und im Ordner pages bzw blocks gespeichert werden (Im Format kein Unterschied zu "regulären" Blöcken). Zu welcher Lösung ratet ihr mir? Aus SIcherheitsgründen oder auch der Umsetzbarkeit und Geschwindigkeit |
#2
| |||
| |||
Zunächst einmal würde ich grundsätzlich von eval() abraten. Das schreit förmlich nach "Hack mich" Deine Anwendung lässt sich meiner Meinung nach mit einer Templateengine ala Smarty oder Savant lösen. Wenn du unbedingt deine Templates in einer Datenbank hinterlegen willst so ist dies hiermit auch möglich und du kannst dich auf das wesentliche konzentrieren, da das cachen und ähnliches direkt von der Templateklasse erledigt wird. Schau am besten mal auf http://smarty.php.net. Das ist die Templateklasse meiner Wahl. |
#3
| |||
| |||
Ich habe bereits eine Template-Klasse, die das cachen von Templates in php-Dateien übernimmt und FOREACH, IF, ELSEIF, INCLUDE unterstützt Es geht auch nicht um die Umsetzung an sich, sondern eher um den Ansatz, wie es gelöst werden soll. Also bist du auch eher für das Speichern innerhalb einer Datei und den einfachen include selbiger bei Bedarf? Und dann steht noch die Frage, ob diese als Cache-Dateien oder eben normale Seiten/ Blöcke abgelegt werden sollen? Sollte man diese in ein entsprechendes Format bringen, so unterschieden diese sich in keinster Weise von einer Seite/ einem Block aus einer Datei. Wäre das dann icht sogar am sinnvollsten? |
#4
| ||||
| ||||
eval() ist keine Gefahr, wenn entsprechend Kontrolle über seinen Code ausübt. Wenn du Performance in Form von Geschwindigkeit möchtest, so solltest die Datenbank nutzen: Ram ist ist schneller Festplatte. Aber damit läufst du auch Gefahr, dass Tonnen an Ram benötigt werden. |
#5
| |||
| |||
Ich werde das jetzt einfach so machen: html-Seiten können direkt in der DB abgelegt und auch aus dieser geladen werden. Seiten aus Dateien stellen eh keine Probleme da, die werden per include eingefügt. Dynamische php-Seiten werden nach dem erstellen in eine Datei geschrieben und auch per include eingefügt. Dadurch vermeide ich es php-Code aus der DB mit eval () auszuführen, da ja beim erstellen der Seite nicht unbedingt auf Sicherheit geachtet wird. |
#6
| ||||
| ||||
Ich hab von diesen Sachen noch kein großen plan , finde es nur sehr umständlich wenn die Templates in die DB gepackt werden, bei Foren in etwa und alles übers ACP bearbeitet werden muss… __________________ Enrico Hahn |
#7
| |||
| |||
Es werden ja nicht die Templates in die DB geladen, sondern viel mehr die Inhalte der Seite Natürlich muss in einer HTML-Seite auch mal ein wenig Layout stecken (DIV's oder Tabellen z.B.), aber das meiste geht über Templates in Dateien |
#8
| ||||
| ||||
? Na aber beim wbb oder vb wird doch alles in der DB gespeichert, hier muss und kann man nur über das ACP Anpassungen vornehmen? __________________ Enrico Hahn |
#9
| |||
| |||
Das verstehe ich jetzt nicht ganz... Wie soll ALLES in der DB gespeichert werden? Auch das Grundlegende Layout der Seite??? Wohl kaum! Nur die Beiträge und diese wiederum nur als Variablen Beitrag und Titel (und was sonst noch benötigt ist) und DIESE Variablen sollten doch dann einfach in das Layout eines Beitrages gesteckt werden (per Schleife wird das dann je Beitrag einmal ausgegeben)... Vielleicht reden wir auch gerade aneinander vorbei??? |
#10
| ||||
| ||||
Zitat:
__________________ Enrico Hahn |
#11
| |||
| |||
Ist das überhaupt sinnvoll? Ich meine eine DB ist schnell, vielleicht ja auch schneller als ein include, doch so viel in die DB abzulegen lässt diese doch gewaltig anwachsen lassen... Ich habe mit dem neuen WBB nichts am Hut und mit VB allgemein sowieso nicht Werde mir das aber mal anschauen. Bleibt aber die Frage im Raum: Macht es Sinn viel und fast alles in die DB zu packen? |
#12
| ||||
| ||||
Im Bezug auf Geschwindigkeit ist es sinnvoll, da der Zugriff über Arbeitsspeicher schneller ist als über Festplattenzugriff. Es stellt sich jedoch die Frage, ob man diesen Geschwindkeitsvorteil nicht durch Optimierung des restlichen Codes besser erreichen könnte. |
#13
| |||
| |||
Eben, außerdem wird die Datenbank bedeutend mehr beansprucht, wenn man alles darin ablegt und unzählige Abfragen für den Seitenaufbau benötigt... Je nach Webspace und Hoster gibt es ja auch öfters mal Probleme mit der DB. |
Stichworte |
- |
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Verbasteln oder einfach mal laufen lassen | Jan Stöver | Community Management, Administration und Moderation | 3 | 08.08.2005 05:28 |