Hvala sto si mi ukazao na propust. Ocigledno je bilo previse kasno za pisanje posta. :-)
PHP kôd:
$key = md5("getResults" . $query); // generate unique $key for this variable
$result = eaccelerator_get($key);
if (is_null($result)){ // variable is not in shared memory, so it’s == null
$result = $GLOBALS['conn']->GetAll($query);
eaccelerator_put($key, $result, 3600); // cache $result for one hour
}
Zasto u md5() dodajem i ime funkcije odakle se poziva? Pa, desi se nekad nemarnoscu da se zeznem i kesiram deo podataka na jednoj strani, a na drugoj trazim sveze rezultate pa onda razbijam glavu zasto se nesto desava sto ja ne razumem.
Elem, posto se radi o upitima koji su jedinstveni, moze slobodno da se uzme md5($query). Dalje, moze da se napravi jedna pomocna funkcija MyExecute() koja ce da pita u shared memory da li postoji rezultat za taj upit i da ga ucita. A moze i da se nasledi metod (u AdoDB slucaju Execute() ili CacheExecute()) i da se uradi isto.
Sada sledi jos da provalim kako da (na elegantan nacin) kesiram Smarty izlaz. :-)
Hvala za digg.