Mailer-Project Community

Support&Community Forum

Funktion des Cache-Systems

Locked

Page: 1

Author Post
profi-concept
Guest
Hallo,

bin gerade am Verzweifeln und kann nicht so wiklich herausfinden wie man das Cachesystem benutzt.

Ich bin mal soweit gekommen:

$GLOBALS['cache_instance']->name = "revision";
$GLOBALS['cache_instance']->init("REVISION");
$GLOBALS['cache_instance']->storeExtensionVersion("sql_patches");
$GLOBALS['cache_instance']->writeArray(array('revision' => $akt_vers));
$GLOBALS['cache_instance']->finalize();


irgendwie funzt das nciht! :roll: Weder weird eine Cachedatei geschrieben noch wird es ordentlich im cache_instance-Objekt reingehängt!

Ich währe um eine Aufkährung sehr dankbar.

MfG
Stelzi
Project Founder
Registered: Sep 2005
Posts: 1395
Location: Krefeld
Die erste Zeile bitte so nicht verwenden. Auch wenn es in PHP4 moeglich ist und das Attribut deswegen nicht auf private gesetzt werden kann (PHP4 versteht kein "private/protected/public", erst PHP5), so sollte eine Cache-Datei wie z.B. in inc/loader/load_cache-admin.php initialisiert und geladen werden.

Das mit ($GLOBALS['cache_instance']->extensionVersionMatches("admins")) kannst du machen, wenn deine Cache-Datei von einer Erweiterung abhaengig ist. Dann solltest du auch beim Erzeugen des Caches (siehe ab Zeile 82) diese mitspeichern:

// Create cache file
$GLOBALS['cache_instance']->init("ADMINS");
$GLOBALS['cache_instance']->storeExtensionVersion("admins");


Bei Fragen, einfach stellen. :)

VG,
Roland

PS: Ich verschiebe das mal in ein passenderes Forum.
_______________
News-Flash: - Bitte den Bug-Tracker mehr nutzen! - Wiki verfuegbar - Bitte die neuste GIT-Revision von dieser Anleitung - Topic 180 herunterladen - Bug-Rallye gestartet! - Historisches Archiv angelegt - SVN-Howto - Commit-Statistik Feb 2008 - dato
profi-concept
Guest
So ich hoffe mal, ich hab das cache-System so gemeistert wie es soll.
Bitte beachte auch meine //@TODO-Notes über API-änderungen in meinem letzten commit bezüglich eines reloads des Caches.

Beim letzten Commit habe ich mal einen neuen Anlauf gemacht das Revision-database.php-Problem zu beseitigen. Die Änderungen und eine Beschreibung der Funktion sollten eigentlich alle in meiner Commit-Logmeldung drinn stehen.

Jetzt bräuchte jede Datei "nur" noch die keyword-Kommentare und die svn:keywords-property gesetzt, dann würde das automatische Revision-Einlesen so funktionieren.

MfG
Stelzi

Ps: Wenn im Cache-System zum cachfile-schreiben serialize hernimst, dann würde das cachefile-schreiben zu einem Befehl werden und sicher eine große Zeitersparnis beim cachefile-schreiben bringen. (hab ich aber glaube ich bereits einmal angeregt)
Project Founder
Registered: Sep 2005
Posts: 1395
Location: Krefeld
Sorry erstmal für die lange Antwortzeit, ich mach Umschulung und komme Abends selten zu MX. Das muss sich natürlich noch ändern. :)

Ich hatte von jemanden mal gehört, dass serialize() und unserielize() als langsam gelten. Daher hatte ich mir gedacht, dass ich das Array als Include-Datei speichere. Gerne kannst du es in deiner Branch mal mit un-/serialize() versuchen und dann vielleicht einen kleinen Benchmark in unserem Wiki einstellen. Theoretisch musst du ja nur die Low-Level-Methoden in der Cache-Klasse ändern, die etwas mit den Cache-Dateien erstellen und lesen zu tun haben.

Ab 0.3.0 wird aber - wie öfters erwähnt - dann alles ganz anders und (hoffentlich) viel besser.

In der letzten Zeit kam ich aber weniger zu MX, sondern mehr zu meinem Hub. Auch haben mich leider fremde Projekte, für die ich viel getestet habe, mich vom Weiterentwickeln an MX abgehalten.

Na, ich schaue mal, ob ich heute und dieses WE mehr dazu komme.
_______________
News-Flash: - Bitte den Bug-Tracker mehr nutzen! - Wiki verfuegbar - Bitte die neuste GIT-Revision von dieser Anleitung - Topic 180 herunterladen - Bug-Rallye gestartet! - Historisches Archiv angelegt - SVN-Howto - Commit-Statistik Feb 2008 - dato

Locked

Page: 1

Parse time: 0.0822 s · Memory usage: 0.52 MB · Server load: 1.06 · Template sections: 2 · SQL queries: 9

Mailer-Project Community is powered by UseBB 1 Forum Software