PHPCache-Bibliothek fertiggestellt

03/21/2012 19:40 PseudoPsycho#1
Ein kleines Nebenprodukt meiner Arbeit am Browsergame...
Um die Skript-Laufzeiten zu optimieren, brauchte ich einen serverseitigen Cache, welcher die generierten Dateien als Textdatei fertigstellt.
Meine Bibliothek bietet verschiedene Funktionen, mit welchen sich mühelos entsprechende Dateien erstellen, öffnen und auf Aktualität überprüfen lassen können...
Entsprechende Cache-Dateien werden vor'm Speichern komprimiert, um den Server möglichst wenig zu belasten.

Eine kleine, deutsche Dokumentation ist als *.docx und *.pdf beigelegt.
Die englische Variante folgt noch.
Das Ganze ist unter einer eingeschränkten [Only registered and activated users can see links. Click Here To Register...]-Lizenz nutzbar.

Feedback ist erwünscht!

Edit: Ganz den Download-Link vergessen... xD
[Only registered and activated users can see links. Click Here To Register...]

Ältere Versionen:

#update
Bei der Nutzung der Bibliothek war es nicht mehr möglich, die Datei vorm Versenden GZip zu komprimieren, was in Sachen Geschwindigkeitsoptimierung mindestens genauso viel Leistung gebracht hätte.
Um dies zu ermöglichen, wurden zusätzliche Funktionen ergänzt.
Näheres s. ChangeLog.
03/24/2012 15:14 qickly#2
#message
Sieht sehr gut aus, womit wurde das programmiert?
03/24/2012 15:27 .Marcel'#3
Quote:
Originally Posted by qickly View Post
#message
Sieht sehr gut aus, womit wurde das programmiert?
PHP und einem Editor...
03/24/2012 16:01 PseudoPsycho#4
Quote:
Originally Posted by .Marcel' View Post
PHP und einem Editor...
PHP. Editor kannst'e streichen, es sei denn du meinst einen reinen Text-Editor... ;)
Sowas hab' ich nicht nötig. ^^

#update
Version 0.3 fertig!
Die Version dürfte der Nutzerfreundlichkeit wohl stark entgegenkommen...
Kürzere Funktionsnamen und leichtere Bedienung in Sachen Komprimierung.
03/25/2012 15:25 Mashkin#5
Sieht ganz nett aus, kann ich aber leider momentan nicht gebrauchen (ich nutze bereits ein Framework mit Templating und Cache).

Wie stehts um eine Erweiterung um Schnittstellen für Memcached und Datenbanken?
Das soll jetzt kein Feature-Request sein, sondern eher eine Idee...

Ach ja und generell würde ich Klassen mit PHPDoc dokumentieren.

Und soweit ich das bei CC verstanden habe ist deine Lizenz-Datei formell nicht ganz korrekt - aber das ist jetzt Klugscheißerei.
03/25/2012 19:17 PseudoPsycho#6
Quote:
Originally Posted by M@shkin View Post
Wie stehts um eine Erweiterung um Schnittstellen für Memcached und Datenbanken?
Das soll jetzt kein Feature-Request sein, sondern eher eine Idee...
Schonmal danke für's Feedback!
Weiß nicht genau, was du damit meinst... Bislang wird einfach das komplette PHP-Skript umgangen, wenn die Cache-Datei aktuell ist, btw. je nach dem, was man da als Bedingung angibt.
Man könnte natürlich in die DB einen TimeStamp bei jeder Änderung eintragen und dann diese Abfrage verwenden:
PHP Code:
if($cache->isCached() && $mysql_timestamp<=$cache->last()){
$cache->get(); } 
Auf die Art wird der Cache nur geladen, wenn sich an der DB nichts geändert hat...

Quote:
Ach ja und generell würde ich Klassen mit PHPDoc dokumentieren.
Sagt mir ehrlich gesagt nicht das Geringste. Was hat es damit auf sich, btw. warum nicht als PDF?

#update
Und wieder eine Version mit vielen, winzigen Änderungen:
Behobene Bugs:
- sendHeader() schmeißt nun keine Fehlermeldung mehr, wenn die Cache-Datei nicht existiert.

Verbesserungen:
- TimeStamp-Kommentar wird nun beim Senden, statt beim Speichern ergänzt
- zusätzliche Fehlermeldungen
- checkDate() beinhaltet nun eine isCached()-Abfrage
- Funktionen zur Komprimierung senden nun einen X-Compression-Header, wenn noch nicht geschehen

Sonstiges:
- Die error()-Funktion kann nicht mehr von externen Anwendungen aufgerufen werden
03/26/2012 23:21 Mashkin#7
Quote:
Originally Posted by PseudoPsycho View Post
Schonmal danke für's Feedback!
Weiß nicht genau, was du damit meinst... Bislang wird einfach das komplette PHP-Skript umgangen, wenn die Cache-Datei aktuell ist, btw. je nach dem, was man da als Bedingung angibt.
Man könnte natürlich in die DB einen TimeStamp bei jeder Änderung eintragen und dann diese Abfrage verwenden:
PHP Code:
if($cache->isCached() && $mysql_timestamp<=$cache->last()){
$cache->get(); } 
Auf die Art wird der Cache nur geladen, wenn sich an der DB nichts geändert hat...

Ich meinte damit den gesamten Cache in einer Datenbank oder per "Mamcached" zu speichern. Es gibt Situationen in denen das Vorteile gegenüber Dateien hat
(z.B. bei Load-Balancing mit mehreren Webservern).


Sagt mir ehrlich gesagt nicht das Geringste. Was hat es damit auf sich, btw. warum nicht als PDF?

PHPDoc ist eine Art Syntax für Kommentare, mit der man Klassen, Methoden, Parameter etc. beschreiben kann, z.B. so:
PHP Code:
/**
* Gibt den Inhalt einer Variable aus
* @param $var Diese Variable wird ausgegeben.
* @version 1.1
*/
public static foo($var)
{echo 
$var;} 

#update
Und wieder eine Version mit vielen, winzigen Änderungen:
Behobene Bugs:
- sendHeader() schmeißt nun keine Fehlermeldung mehr, wenn die Cache-Datei nicht existiert.

Verbesserungen:
- TimeStamp-Kommentar wird nun beim Senden, statt beim Speichern ergänzt
- zusätzliche Fehlermeldungen
- checkDate() beinhaltet nun eine isCached()-Abfrage
- Funktionen zur Komprimierung senden nun einen X-Compression-Header, wenn noch nicht geschehen

Sonstiges:
- Die error()-Funktion kann nicht mehr von externen Anwendungen aufgerufen werden
Siehe rechtsbündige Kommentare...
03/27/2012 16:18 PseudoPsycho#8
Quote:
Originally Posted by M@shkin View Post
Ich meinte damit den gesamten Cache in einer Datenbank oder per "Mamcached" zu speichern. Es gibt Situationen in denen das Vorteile gegenüber Dateien hat
(z.B. bei Load-Balancing mit mehreren Webservern).
Joa, für MySQL ist bereits eine Erweiterung in Entwicklung, also sowas:
PHP Code:
class MySQLCache extends PHPCache 
03/29/2012 17:35 PseudoPsycho#9
Quote:
Originally Posted by M@shkin View Post
Wie stehts um eine Erweiterung um Schnittstellen für Memcached und Datenbanken?
Das soll jetzt kein Feature-Request sein, sondern eher eine Idee...
Also, V1.0 ist fertig!
Besonderes Feature:
Die PHPCache.php bietet nun Möglichkeiten zur Aufschaltung von Erweiterungen, so habe ich bereits eine erste, recht umfangreiche Extension fertig geschrieben: MySQLCache.
Hierbei wird der Cache nämlich statt als Datei in eine Datenbank geschrieben und sie bietet einige weitere Abgleichs-Funktionen.