Moin,
@nat: implementier doch auch gleich Dependency Injection:
Code:
class Data
{
private $cache;
public $forceDB = false;
public function __construct($cache)
{
$this->cache = $cache;
}
public function get($name)
{
$data = false;
if(!$this->forceDB && $this->cache)
$data = $this->cache->get($name);
if($data === false)
{
//aus
DB lesen
$data = ...;
if ($this->cache)
$this->cache->set($name, $data);
}
return $data;
}
}
$data = new Data(new Cache());
$data->forceDB = true;
echo $data->get('blabla');
Der Vorteil ist, dass du dann Cache auch als Singleton implementieren kannst:
Code:
$data = new Data(Cache::getInstance());
Greetz
alcaeus