Hallo Slava,
Mit Zugriff auf XML meine ich, dass ich innerhalb eines Templates per XML-Tag an definierter Stelle ein weiteres einbinden kann. Das geht bei mir so:
Somit kann ich allein mit der Erweiterung eines Templates ein weiteres, bzw. eine weitere Funktion einbinden. Hier wurde nach dem Composite-Pattern vorgegangen, so dass man eine beliebige Schachtelungstiefe erzeugen kann. Praktischer Anwendungsfall: gemeinsames Menü wird in die Seite eingebaut.
Wenn du hierzu mal eine Demo oder Anwendung sehen möchtest, kann ich dir gerne was zukommen lassen. Sprich mich einfach mal drauf an!
SharedMemoryCache sind nicht einfach zu handhaben, da PHP Reauestgetrieben ist. Somit kommt der Benutzer immer nur bei einem Request "vorbei". Man sollte sich nun überlegen, welche Daten man im Memory vorhält, da die Requests oft zu unterschiedlich sind, als dass sich das lohnen würde. Ich persönlich setze das nur für gemeinsame Komponenten wie MySQL-Handler oder andere Business-Komponenten ein, die ich aber dediziert auswähle und SessionSingleton instanziiere. Den Rest erzeuge ich immer zur Laufzeit (=Requestzeit), da sich der Aufwand performance-technisch nicht lohnt. Damit solltest du auch keine RAM-Probleme bekommen. Man kann PHP ohnehin restriktieren. Auf einem LINUX-System kann man dann zudem dem PHP- oder Apache-Prozess beim Starten noch ein ulimit mitgeben.
Das ist nur sinnvoll, wenn du Objekte in der Session halten möchtest, denn das geht mit PHP per se nicht. Solltest du einen SingletonSessionHandler haben, der dir das Objekt automatisch serialisiert / deserialisiert und in die Session schreibt / aus der Session holt, brauchst du auch das nicht unbedingt. Es ist zwar sicher schöner, weil man sich das serialisieren / deserialisieren spart (kostet einiges an Zeit!), aber bei kleinen Sessions ist das noch nicht relevant.
Weitere Fragen beantworte ich gerne.
Auch zugiff auf ein XML tag hasst du bei meiner Template nur über die zusatzfunction, die als optionaler parameter übergeben wird oder auch wie bei den anderen Templaten, in dem du ausgabe erst zwischenspeicherst.
Code:
<core:importdesign namespace="" template="" />
Wenn du hierzu mal eine Demo oder Anwendung sehen möchtest, kann ich dir gerne was zukommen lassen. Sprich mich einfach mal drauf an!
Erste Frage:
Ich versuche gerade viel zu oft Shared Memory für chacen einzusetzen.
Ich versuche gerade viel zu oft Shared Memory für chacen einzusetzen.
Zweite Frage:
Ist es sinnvoll für die sessionführung nicht dateien sondern Shared Memory zu benutzen?
Ist es sinnvoll für die sessionführung nicht dateien sondern Shared Memory zu benutzen?
Weitere Fragen beantworte ich gerne.
Kommentar