Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit a3b45eb

Browse files
Merge branch '4.2'
* 4.2: [Cache] fix connecting using socket with phpredis [HttpKernel] fix nested calls to serialize when using DataCollector
2 parents 32aa969 + 48e5df8 commit a3b45eb

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

src/Symfony/Component/Cache/Traits/RedisTrait.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ public static function createConnection($dsn, array $options = [])
156156

157157
$initializer = function ($redis) use ($connect, $params, $dsn, $auth, $hosts) {
158158
try {
159-
@$redis->{$connect}($hosts[0]['host'], $hosts[0]['port'], $params['timeout'], (string) $params['persistent_id'], $params['retry_interval']);
159+
@$redis->{$connect}($hosts[0]['host'] ?? $hosts[0]['path'], $hosts[0]['port'] ?? null, $params['timeout'], (string) $params['persistent_id'], $params['retry_interval']);
160160
} catch (\RedisException $e) {
161161
throw new InvalidArgumentException(sprintf('Redis connection failed (%s): %s', $e->getMessage(), $dsn));
162162
}

src/Symfony/Component/HttpKernel/DataCollector/DataCollector.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,15 @@ abstract class DataCollector implements DataCollectorInterface, \Serializable
3636

3737
public function serialize()
3838
{
39-
return serialize($this->data);
39+
$trace = debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT, 2);
40+
$isCalledFromOverridingMethod = isset($trace[1]['function'], $trace[1]['object']) && 'serialize' === $trace[1]['function'] && $this === $trace[1]['object'];
41+
42+
return $isCalledFromOverridingMethod ? $this->data : serialize($this->data);
4043
}
4144

4245
public function unserialize($data)
4346
{
44-
$this->data = unserialize($data);
47+
$this->data = \is_array($data) ? $data : unserialize($data);
4548
}
4649

4750
/**

0 commit comments

Comments
 (0)