ZodiacXP
Erfahrenes Mitglied
Hallo.
Soeben habe ich mir eine Klasse geschrieben, die sich wie ein Cache verhält.
Als Beispiel: Ein Template hat immer die selben Variablen für die Übersetzung drin.
Statt hier erst alle per preg_match() o.ä. rauszufischen und dann per SQL zu fragen wie denn die übersetzung ist, kann man auf den Cache zugreifen (sofern dort das Ergebnis einmalig gespeichert wurde).
Man kann alles speichern was var_export() auch erstellen kann.
Lange Rede kurzer Sinn. Hier ist die Klasse und ich wüsste gerne was ihr davon haltet oder verbessern würdet:
Soeben habe ich mir eine Klasse geschrieben, die sich wie ein Cache verhält.
Als Beispiel: Ein Template hat immer die selben Variablen für die Übersetzung drin.
Statt hier erst alle per preg_match() o.ä. rauszufischen und dann per SQL zu fragen wie denn die übersetzung ist, kann man auf den Cache zugreifen (sofern dort das Ergebnis einmalig gespeichert wurde).
Man kann alles speichern was var_export() auch erstellen kann.
Lange Rede kurzer Sinn. Hier ist die Klasse und ich wüsste gerne was ihr davon haltet oder verbessern würdet:
PHP:
<?php
/**
* Cache your variables
*
* LICENSE: This source file is subject to
* "Attribution-Noncommercial-Share Alike 2.0 Generic" license
* that is available through the world-wide-web at the following URI:
* http://creativecommons.org/licenses/by-nc-sa/2.0/
* If you are unable to obtain it through the web, please send a
* note to zodiacxp@web.de so I can mail you a copy.
*
* 2008/08/23
* @category Cache
* @author ZodiacXP
* @copyright ZodiacXP
* @license by-nc-sa http://creativecommons.org/licenses/by-nc-sa/2.0/
* @version 1.0.0
*/
class Cache
{
private $aCache = array();
private $_add = "";
function __construct()
{
$this->_add = "_cache".$_SERVER["REQUEST_URI"];
if (func_num_args() != 0) $this->_add .= "/".implode("/", func_get_args());
}
function __get($var) {
if (!isset($this->aCache[$var]) && file_exists($this->_add.$var.".tmp"))
eval('$this->aCache[$var] = '.@file_get_contents($this->_add.$var.".tmp").';');
return $this->aCache[$var];
}
function __set($var, $val)
{
if(!is_dir($this->_add)) mkdir($this->_add, NULL, true);
file_put_contents($this->_add."/".$var.".tmp", var_export($val, true));
$this->aCache[$var] = $val;
}
}
?>
Zuletzt bearbeitet: