示例#1
0
文件: demo.php 项目: hiloy/autophp
 public function getUserInfo2($uin)
 {
     $keyTpl = 's_tframework_debug_cache_key_%s';
     $key = sprintf($keyTpl, $uin);
     $errmsg = null;
     try {
         $cacheData = cache::instance('rs1')->get($key);
         if ($cacheData) {
             echo "\r\n <br /> use redis! \r\n <br /> ";
             return unserialize($cacheData);
         }
         //$data =  $this->queryFetch('desc ent_package;');
         //第二种调用得到 ORM 的方式!可以得到任意 db 和table 的orm 实例
         $data = modelorm::instance($this->_dbAlias)->table($this->_table)->where('package_id > 5')->getOne();
         if ($data) {
             $expire = 16;
             echo "\r\n <br /> set redis! \r\n <br /> ";
             cache::instance('rs1')->set($key, serialize($data), $expire);
         }
     } catch (exception_mysqlpdo $e) {
         $code = $e->getCode();
         $errmsg = $e->getMessage();
         switch ($code) {
             case exception_mysqlpdo::type_conf_error:
                 //config error, you can do something here
                 break;
             case exception_mysqlpdo::type_high_risk_query:
                 // high risk of your query, may effect the hole table
                 break;
             case exception_mysqlpdo::type_query_error:
                 //query failed or some ...
                 break;
             default:
                 break;
         }
     } catch (exception_db $e) {
         $code = $e->getCode();
         $errmsg = $e->getMessage();
     } catch (exception_cache $e) {
         $code = $e->getCode();
         $errmsg = $e->getMessage();
     } catch (Exception $e) {
         throw $e;
     }
     if ($errmsg) {
         //do something to record the exception error message
         return false;
     }
     return $data;
 }
示例#2
0
 public static function getInstance()
 {
     if (self::$instance === null) {
         $list = array('XCache_provider', 'MemCache_provider', 'APC_provider', 'DBA_DB4_provider', 'DBA_FlatFile_provider', 'FileCache_provider');
         if (defined('MCMS_CACHE_PROVIDER') and class_exists(MCMS_CACHE_PROVIDER)) {
             array_unshift($list, MCMS_CACHE_PROVIDER);
         }
         foreach ($list as $class) {
             if (null !== (self::$instance = call_user_func(array($class, 'initialize')))) {
                 break;
             }
         }
     }
     return self::$instance;
 }
示例#3
0
 tpl_set_var('difficulty_options', $difficulty_options);
 //terrain
 $terrain = isset($_POST['terrain']) ? $_POST['terrain'] : 1;
 $terrain_options = '<option value="1">' . $sel_message . '</option>';
 for ($i = 2; $i <= 10; $i++) {
     if ($terrain == $i) {
         $terrain_options .= '<option value="' . $i . '" selected="selected">' . $i / 2 . '</option>';
     } else {
         $terrain_options .= '<option value="' . $i . '">' . $i / 2 . '</option>';
     }
     $terrain_options .= "\n";
 }
 tpl_set_var('terrain_options', $terrain_options);
 tpl_set_var('sizeoptions', common::buildCacheSizeSelector($sel_type, $sel_size));
 //typeoptions
 $cache = cache::instance();
 $cacheTypes = $cache->getCacheTypes();
 $types = '<option value="-1">' . tr('select_one') . '</option>';
 foreach ($cacheTypes as $typeId => $type) {
     /* block creating forbidden cache types */
     if (in_array($typeId, $config['forbidenCacheTypes'])) {
         continue;
     }
     /* apply cache limit by type per user */
     if (isset($config['cacheLimitByTypePerUser'][$typeId]) && $cacheLimitByTypePerUser[$typeId] >= $config['cacheLimitByTypePerUser'][$typeId]) {
         continue;
     }
     if ($typeId == $sel_type) {
         $types .= '<option value="' . $typeId . '" selected="selected">' . tr($type['translation']) . '</option>';
     } else {
         $types .= '<option value="' . $typeId . '">' . tr($type['translation']) . '</option>';
示例#4
0
require_once $rootpath . 'lib/consts.inc.php';
/* take datetime format from settings.inc.php */
$sDateformat = $datetimeFormat;
// Check if another instance of the script is running
$lock_file = fopen("/tmp/notification-run_notify.lock", "w");
if (!flock($lock_file, LOCK_EX | LOCK_NB)) {
    // Another instance of the script is running - exit
    echo "Another instance of run_notify.php is currently running.\nExiting.\n";
    fclose($lock_file);
    exit;
}
// No other instance - do normal processing
$db = new dataBase();
$rsNotifyQuery = " SELECT  `notify_waiting`.`id`, `notify_waiting`.`cache_id`, `notify_waiting`.`type`,\n                `user`.`username`, user.user_id as cache_owner_id,\n                user.hidden_count as hidden, user.notfounds_count as dnf, user.founds_count as found,\n                `user2`.`email`, `user2`.`username` as `recpname`, `user2`.`latitude` as `lat1`, `user2`.`longitude` as `lon1`, `user2`.`user_id` as `recid`,\n                `caches`.`name` as `cachename`, `caches`.`date_hidden`, `caches`.`latitude` as `lat2`, `caches`.`longitude` as `lon2`, `caches`.`wp_oc`,\n                `caches`.`type` as `cachetype`,\n                `caches`.`size` as `cachesize`\n            FROM `notify_waiting`, `caches`, `user`, `user` `user2`\n            WHERE `notify_waiting`.`cache_id`=`caches`.`cache_id`\n              AND `notify_waiting`.`user_id`=`user2`.`user_id`\n              AND `caches`.`user_id`=`user`.`user_id`\n              AND `notify_waiting`.`id` > :1\n            ORDER BY `notify_waiting`.`id`\n            LIMIT 0,100\n";
/* init caches container */
$cacheCntainer = cache::instance();
$cacheTypes = $cacheCntainer->getCacheTypes();
$cacheSizes = $cacheCntainer->getCacheSizes();
$cacheTypeIcons = $cacheCntainer->getCacheTypeIcons();
$id = 0;
do {
    $db->multiVariableQuery($rsNotifyQuery, $id);
    $rsNotify = $db->dbResultFetchAll();
    foreach ($rsNotify as $rNotify) {
        $id = $rNotify['id'];
        /* send out everything that has to be sent */
        if (process_new_cache($rNotify) == 0) {
            $db->multiVariableQuery("DELETE FROM `notify_waiting` WHERE `id` =:1", $rNotify['id']);
        }
    }
    if (count($rsNotify) > 0) {
示例#5
0
 /**
  * 缓存
  *
  * @param $config array  数据库参数
  * @return object 数据库连接
  */
 public static function cache($name, $value = '', $expire = 0)
 {
     static $caches = array();
     if (isset($caches[$name]) && empty($value)) {
         return $caches[$name];
     }
     if (is_array($name) or is_bool($name)) {
         return cache::instance($name);
     }
     $cache = cache::instance();
     // $name === null 时清空全部缓存
     if ($name === null) {
         $cache->clear();
     }
     // $value === null 时清空全部缓存
     if ($value === null) {
         unset($caches[$name]);
         $cache->delete($name);
     }
     // 返回指定缓存
     if (empty($value)) {
         $value = $cache->get($name);
         $caches[$name] = $value;
         return $value;
     }
     //设置缓存
     return $cache->set($name, $value, $expire);
 }
示例#6
0
 /**
  * @param array $params
  *            'cacheId' => (integer) database cache identifier
  *            'wpId' => (string) geoCache wayPoint (ex. OP21F4)
  */
 public function __construct(array $params = array())
 {
     if (isset($params['cacheId'])) {
         // load from DB if cachId param is set
         $db = OcDb::instance();
         $this->id = (int) $params['cacheId'];
         $queryById = "SELECT size, status, founds, notfounds, topratings, votes, notes, score,  name, type, date_hidden, longitude, latitude, wp_oc, wp_gc, wp_nc, wp_tc, wp_ge, user_id, last_found, difficulty, terrain, way_length, logpw, search_time, date_created, watcher, ignorer_count, org_user_id, desc_languages, mp3count, picturescount, date_activate FROM `caches` WHERE `cache_id`=:1 LIMIT 1";
         $s = $db->multiVariableQuery($queryById, $this->id);
         $cacheDbRow = $db->dbResultFetch($s);
         if (is_array($cacheDbRow)) {
             $this->loadFromRow($cacheDbRow);
         } else {
             ddd('geocache not found in db? TODO: cache-not-found handling');
             //TODO: cache-not-found handling?
         }
         $this->loadCacheLocation($db);
     } else {
         if (isset($params['okapiRow'])) {
             $this->loadFromOkapiRow($params['okapiRow']);
         }
     }
     $this->dictionary = \cache::instance();
 }
示例#7
0
 /**
  * Cache get item
  *
  * @param   string		the id of the cache item
  * @return  mixed		the cache item data or false
  */
 public function get_cache($id)
 {
     if (!$this->_config['cache']) {
         return false;
     }
     return cache::instance()->get($id);
 }
示例#8
0
 public static function buildCacheSizeSelector($sel_type, $sel_size)
 {
     $cache = cache::instance();
     $cacheSizes = $cache->getCacheSizes();
     $sizes = '<option value="-1">' . tr('select_one') . '</option>';
     foreach ($cacheSizes as $size) {
         if ($sel_type == 6) {
             if ($size['id'] == cache::SIZE_NOCONTAINER) {
                 $sizes .= '<option value="' . $size['id'] . '" selected="selected">' . tr($size['translation']) . '</option>';
                 tpl_set_var('is_disabled_size', '');
             } else {
                 $sizes .= '<option value="' . $size['id'] . '">' . tr($size['translation']) . '</option>';
                 tpl_set_var('is_disabled_size', 'disabled');
             }
         } elseif ($size['id'] != cache::SIZE_NOCONTAINER) {
             if ($size['id'] == $sel_size) {
                 $sizes .= '<option value="' . $size['id'] . '" selected="selected">' . tr($size['translation']) . '</option>';
             } else {
                 $sizes .= '<option value="' . $size['id'] . '">' . tr($size['translation']) . '</option>';
             }
         }
     }
     return $sizes;
 }