/var/www/hkosl.com/nick/codeigniter/application/vendor/symfony/var-dumper/Caster/RedisCaster.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\VarDumper\Caster;

use 
Symfony\Component\VarDumper\Cloner\Stub;

/**
 * Casts Redis class from ext-redis to array representation.
 *
 * @author Nicolas Grekas <p@tchwork.com>
 */
class RedisCaster
{
    private static 
$serializer = [
        \
Redis::SERIALIZER_NONE => 'NONE',
        \
Redis::SERIALIZER_PHP => 'PHP',
        
=> 'IGBINARY'// Optional Redis::SERIALIZER_IGBINARY
    
];

    public static function 
castRedis(\Redis $c, array $aStub $stub$isNested)
    {
        
$prefix Caster::PREFIX_VIRTUAL;

        if (\
defined('HHVM_VERSION_ID')) {
            if (isset(
$a[Caster::PREFIX_PROTECTED.'serializer'])) {
                
$ser $a[Caster::PREFIX_PROTECTED.'serializer'];
                
$a[Caster::PREFIX_PROTECTED.'serializer'] = isset(self::$serializer[$ser]) ? new ConstStub(self::$serializer[$ser], $ser) : $ser;
            }

            return 
$a;
        }

        if (!
$connected $c->isConnected()) {
            return 
$a + [
                
$prefix.'isConnected' => $connected,
            ];
        }

        
$ser $c->getOption(\Redis::OPT_SERIALIZER);
        
$retry = \defined('Redis::OPT_SCAN') ? $c->getOption(\Redis::OPT_SCAN) : 0;

        return 
$a + [
            
$prefix.'isConnected' => $connected,
            
$prefix.'host' => $c->getHost(),
            
$prefix.'port' => $c->getPort(),
            
$prefix.'auth' => $c->getAuth(),
            
$prefix.'dbNum' => $c->getDbNum(),
            
$prefix.'timeout' => $c->getTimeout(),
            
$prefix.'persistentId' => $c->getPersistentID(),
            
$prefix.'options' => new EnumStub([
                
'READ_TIMEOUT' => $c->getOption(\Redis::OPT_READ_TIMEOUT),
                
'SERIALIZER' => isset(self::$serializer[$ser]) ? new ConstStub(self::$serializer[$ser], $ser) : $ser,
                
'PREFIX' => $c->getOption(\Redis::OPT_PREFIX),
                
'SCAN' => new ConstStub($retry 'RETRY' 'NORETRY'$retry),
            ]),
        ];
    }

    public static function 
castRedisArray(\RedisArray $c, array $aStub $stub$isNested)
    {
        
$prefix Caster::PREFIX_VIRTUAL;

        return 
$a + [
            
$prefix.'hosts' => $c->_hosts(),
            
$prefix.'function' => ClassStub::wrapCallable($c->_function()),
        ];
    }
}