Portal > Foren > PHP > PEAR, PECL und Frameworks > Smarty - Dynamische Seiten cachen?
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 25.07.2006, 21:00 Nach oben    #1
leftover when bar closes
 
Benutzerbild von dsxs
 
Registriert seit: 29.06.2006
Ort: Bern
Beiträge: 123
Standard Smarty - Dynamische Seiten cachen?

Guten Abend allerseits

Ist es mit Smarty möglich, dynamisch generierte Seiten zu cachen?
Mit dynamisch meine ich folgendes:

index.php erstellt in unserem webshop den ganzen Shop an sich, die Navigation und die Produktedetails.
Da sich die Produkteinfos nur sehr sporadisch ändern, möchte ich diese cachen. Wenn ich nun aber caching aktiviere, kommt logischerweise IMMER dasselbe Produkt, weil die ganze Seite ja gecached ist.

Nun wäre es sehr praktisch, wenn ich der Cachingfunktion eine einzigartige Produkte-ID mitliefern könnte um verschiedene Versionen der selben page zu cachen. Möglich?

Grüsse
__________________
Unkraut ist die Opposition der Natur gegen die Regierung der Gärtner.
ticketbörse

dsxs ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 26.07.2006, 11:52 Nach oben    #2
Master of Disaster
 
Benutzerbild von Matthias959
 
Registriert seit: 18.08.2005
Ort: Duisburg
Beiträge: 36
Standard

Wenn ich mich nicht täusche, dann macht Smarty das doch automatisch, oder?
Schau dir doch mal die Dateien im Ordner Template_c an.

Gruß
Matthias
__________________
Matthias959 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 26.07.2006, 13:59 Nach oben    #3
leftover when bar closes
 
Benutzerbild von dsxs
 
Registriert seit: 29.06.2006
Ort: Bern
Beiträge: 123
Standard

Hmm, da müsste ich was echt verbockt haben, bei mir hat das nicht geklappt.

Hmm, wobei, es liegt wohl daran, dass ich mit mod_rewrite und $_REQUEST_URL die angefragten Seiten aufsplitte und so alles in einem index.php verarbeite, somit wäre die URL ja ständig gleich, ohne angehängte $_GET's. Das wirds wohl sein...

Ich werd' mich mal auf die Suche machen und schauen, ob man smarty eine unique ID mitgeben kann fürs cachen

Danke dir
__________________
Unkraut ist die Opposition der Natur gegen die Regierung der Gärtner.
ticketbörse

dsxs ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.08.2006, 22:40 Nach oben    #4
Erfahrener Benutzer
 
Registriert seit: 19.08.2005
Beiträge: 115
Standard

Afaik ist das bei Smarty mit dem Cachen so:
Wenn Smarty eine .tpl datei parsen soll, wandelt er sie zuerst in einen php Code um, der dann die ganzen Variablen zur Verfügung gestellt bekommt, die man im Script assigned.
Beim Cachen wird lediglich der erzeugte phpcode gespeichert. Falls sich eine tpl datei ändert, erkennt Smarty das und parst die tpl datei erneut zu einer .php datei.
__________________
Programming today is a race between software engineers striving to build bigger and better
idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the
universe is winning.

Geändert von Buhmann (03.08.2006 um 22:43 Uhr)
Buhmann ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.08.2006, 16:09 Nach oben    #5
Benutzer
 
Registriert seit: 28.12.2005
Beiträge: 35
Standard

Ich glaub ihr vermischt hier zwei verschiedene paar Stiefel bei smarty:

- Template-Compile (templates_c)
- Cache

Bei ersterem wird php-code mit template-code "verschmolzen". Beim cachen wird in der Tat der fertige output gecached. Hier gibt es dann aber auch kenie dynamischen Möglichkeiten mehr soweit ich weiß.

Mehr Auskunft hierüber gibt aber sicherlich die Doku:

http://smarty.php.net/manual/de/caching.php

ersters (compile) kannst übrigens nicht abschalten oder umgehen - das ist die Basis und einer der großen Vorteile von smarty (compiling template engine).

btw: Keine Garantie auf Richtigkeit - ich bin kein Smarty-Experte
lokari ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 26.09.2006, 19:36 Nach oben    #6
Benutzer
 
Registriert seit: 31.12.2005
Beiträge: 90
Standard

es gibt mehrere "stufen". also zuerst werden die templates in php dateien umgeschrieben. das nennt man compilieren, und die templates werden in templates_c gespeichert, falls nicht selbst geändert.

falls du $smarty->check_compile auf true hast, wird immer geprüft, ob änderungen am template vorgenommen werden und neue compilierte templates erstellt, ansonsten nicht. defaultwert is glaub true.

falls du $smarty->force_compile auf true hast, dann wird immer neu compiliert (eventuell bei der entwicklung gut). defaultwert is glaub false.

nun hast du die compilierten templates. d.h. es ist einem normalen php vorgang ähnlich. wenn du nun $smarty->caching auf 1 (d.h. alle templates haben die selbe $smarty->cache_lifetime) oder auf 2 (d.h. jedes template kann eine extra lifetime haben) hast, dann wird der output gecached. d.h. das compilierte template mit den richtigen daten gefüllt wird gecached.

dem cache kannst du eine cache_id übergeben. diese solltest du einfach aus den variablen zusammenstellen, die für die darstellung wichtig sind.

den cache kannst du per clear_cache() löschen (löscht den cache einer bestimmten templatedatei) oder clear_all_cache() (löscht den ganzen cache).

du kannst auch trotz des caches weiterhin teile dynamisch lassen. dies geht entweder über einen selbst definierten block, oder über die funktion
{insert}! damit rufst du eine php funktion auf,d eren rückgabe dort eingefügt wird, natürlich dynamisch. an die funktion kannst du wie immer auch parameter übergeben:
{insert name="funktionsname" param="value" param2="value2"}

ich hoffe, ich habe ein wenig klarheit geschaffen!
björn ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Eine Anmeldung -> Auf zwei Seiten Session starten und Cookie setzten Jan PHP-Programmierung 12 27.09.2006 20:00
Verständnissfrage zu Smarty la-finest PEAR, PECL und Frameworks 7 26.09.2006 19:25
Opera cached dynamische Seite dsxs HTML, XML und CSS 11 29.08.2006 10:47
[Rezension] Professionelle PHP 5-Programmierung, Ben Literatur 11 27.07.2006 20:48
Navigation auf Smarty umstellen?! napsio PEAR, PECL und Frameworks 4 25.01.2006 19:22


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:20 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45