YMQRBACRelationGetData.class.php 1.49 KB
<?php
require_once dirname(__FILE__). '/YMQRBACRelationRedisHelper.class.php';
/**
 * 获取Redis存放的应用RBAC关联数据
 */
class YMQRBACRelationGetData
{
    /**
     * 存放Redis 对象
     * @var object
     */
    private static $redis;
    
    /**
     * 创建 Redis 对象
     */
    private static function _createRedis()
    {
        if (!isset(self::$redis))
        {
            self::$redis = new YMQRBACRelationRedisHelper();
        }
        else
        {
            // 测试此处有 socket 过期现象
            $ping = @self::$redis->mRedis->ping();
            
            // 判断连接是否断开
            if ($ping != '+PONG')
            {
                self::$redis = new YMQRBACRelationRedisHelper();
            }
        }
    }
    
    /**
     * 获取指定的数据
     * 
     * @param string $key 键名
     * @param mixed $return 此参数用于控制返回结果的类型
     * @return mixed (array|string)
     */
    public static function get($key, $return = array())
    {
        self::_createRedis();
        
        // 数据存在: 返回字符串 , 不存在: 返回 false
        $tempResult = self::$redis->mRedis->get(strval($key));
        if ($tempResult != false && is_string($tempResult)) 
        {
            if (is_array($return))
            {
                $return = explode(',', $tempResult);
            }
            else
            {
                $return = $tempResult;
            }
        }
        return $return;
    }
}