for ($i = 0; $i < $usercount; $i++) { //$id = mt_rand(1,1000); $id = $usercount - $i; $users[$id] = new User($id); } function GetFromAnyExternal($arr, $users) { $r = array(); foreach ($arr as $key) { $r[$key] = array('_id' => $users[$key]->id, date('h:i:s A')); } return $r; } $toFill = array(); $keys = array_keys($users); $slots = Cacher::create('Test', $keys); $CacheData = array(); //echo "<hr><pre>";var_export($slots);echo '</pre><hr>'; exit; foreach ($slots as $key => $slot) { if (!($CacheData[$key] = $slot->get())) { $toFill[] = $key; } } $rez = GetFromAnyExternal($toFill, $users); foreach ($toFill as $key) { //$slot->addTag(Cacher_Tag::create('SmplTag', $User)); // Создаем и сразуже добавляем новый тег к слоту перед сохрананеием в кеш //$slot->addTag(Cacher_Tag::create('SmplTag1', $User)); // Создаем и сразуже добавляем новый тег к слоту перед сохрананеием в кеш //echo "<hr>setTag: ", Cacher_Tag::create('SmplTag', $key)->getKey(); //$slots[$key]->addTag( Cacher_Tag::create('SmplTag', $key) ); //sleep(1);// hard data $val = $rez[$key];
class User { public $id; function __construct($id = 5) { $this->id = $id; //rand(1,20000); } } function GetFromAnyExternal(User $User) { return array('username', 'userid' => $User->id, date('h:i:s A')); } $User = new User(); //Cacher::Slot('User',$User); $slot = Cacher::create('Test', $User->id); if (false === ($CacheData = $slot->get())) { $CacheData = GetFromAnyExternal($User); // Получаем данные из внешнего хранилища //$slot->addTag(Cacher_Tag::create('SmplTag', $User)); // Создаем и сразуже добавляем новый тег к слоту перед сохрананеием в кеш //$slot->addTag(Cacher_Tag::create('SmplTag1', $User)); // Создаем и сразуже добавляем новый тег к слоту перед сохрананеием в кеш //Cacher_Tag::create('SmplTag', $User)->getKey(); //$slot->addTag( Cacher_Tag::create('SmplTag', 'dfg') ); //sleep(1);// hard data echo '<hr><font color=blue>to cache</font><hr>'; $slot->set($CacheData); // Кешируем данные } //$slot->del(); //Cacher_Tag::create('SmplTag',$User)->clear(); //Cacher::newTag('SmplTag1',$User)->clear();