Blame | Letzte Änderung | Log anzeigen | RSS feed
Technical choices for Cache_Lite...-----------------------------------To begin, the main goals of Cache_Lite :- performances- safe use (even on very high traffic or with NFS (file locking doesn't workwith NFS))- flexibility (can be used by the end user or as a part of a larger script)For speed reasons, it has been decided to focus on the file container (thefaster one). So, cache is only stored in files. The class is optimized for that.If you want to use a different cache container, have a look to PEAR/Cache.For speed reasons too, the class 'Cache_Lite' has do be independant (so no'require_once' at all in 'Cache_Lite.php'). But, a conditional include_onceis allowed. For example, when an error is detected, the class include dynamicalythe PEAR base class 'PEAR.php' to be able to use PEAR::raiseError(). But, inmost cases, PEAR.php isn't included.For the second goal (safe use), there is three (optional) mecanisms :- File Locking : seems to work fine (but not with distributed file systemlike NFS...)- WriteControl : the cache is read and compared just after being stored(efficient but not perfect)- ReadControl : a control key (crc32(), md5() ou strlen()) is embeded is thecache file and compared just after reading (the most efficientbut the slowest)