Jak správně ukládat data z databaze do cache
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Oli
- Člen | 1215
Chtěl bych si ukládat (některé) dotazy na databázi do cache. Problém je, že nevím jak na to, když se (pochopitelně) nesmí uložit připojení k databázi. Co a jak mám tedy uložit? Teď to volám takto (což samozřejmě nefunguje):
public function getRows($id = null)
{
// _db je Nette\Database\Connection
...
return $this->_db->table('tabulka')->wherePrimary($id)->fetch();
...
}
return $this->cache->call(callback($this->repository, 'getRows', $this->variantSettings));
Rozchodil jsem to jen tak, že jsem si ukládal pole, které jsem poté
procházel. Chtěl bych ale, abych měl stejné API jako s dotazem na
databázi. Tedy abych mohl přistupovat pomocí $tabulka->id
a $tabulka->referencni_tabulka->name
Hledal jsem snad všude, ale nikde jsem k tomu nic nenašel.
A taková podotázka, koukal jsem se na strukturu
Nette\Database\Table\Selection
a je tam cache. Tam si drží
strukturu databáze nebo to slouží k něčemu jinému?
Díky