3 # a simple, persistent, key/value store optimized for many reads
5 # call persistent_{get,set,clear}
8 function persistent_init() {
9 if (isset($GLOBALS['wfpl_persistent'])) {
12 $GLOBALS['wfpl_persistent'] = array();
13 $rows = db_get_rows('persistent', 'k,v');
14 foreach ($rows as &$row) {
15 $GLOBALS['wfpl_persistent'][$row[0]] = json_decode($row[1], true);
19 function persistent_get($k) {
21 if (isset($GLOBALS['wfpl_persistent'][$k])) {
22 return $GLOBALS['wfpl_persistent'][$k];
26 function persistent_set($k, $v) {
28 if (isset($GLOBALS['wfpl_persistent'][$k])) {
29 if ($GLOBALS['wfpl_persistent'][$k] === $v) {
32 db_update('persistent', 'v', json_encode($v), 'where k=%"', $k);
34 db_insert('persistent', 'k,v', $k, json_encode($v));
36 $GLOBALS['wfpl_persistent'][$k] = $v;
38 function persistent_clear($k) {
40 if (isset($GLOBALS['wfpl_persistent'][$k])) {
41 db_delete('persistent', 'where k=%"', $k);
42 unset($GLOBALS['wfpl_persistent'][$k]);