Skip to content

Commit f79a7d5

Browse files
authored
Merge pull request #50 from perftools/xx
SaverFactory: check for array type before merging
2 parents 44a7259 + ddb318f commit f79a7d5

1 file changed

Lines changed: 12 additions & 6 deletions

File tree

src/SaverFactory.php

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,26 +18,32 @@ public static function create($saveHandler, array $config = array())
1818
{
1919
switch ($saveHandler) {
2020
case Profiler::SAVER_FILE:
21-
$saverConfig = array_merge(array(
21+
$defaultConfig = array(
2222
'filename' => null,
23-
), isset($config['save.handler.file']) ? $config['save.handler.file'] : array());
23+
);
24+
$userConfig = isset($config['save.handler.file']) && is_array($config['save.handler.file']) ? $config['save.handler.file'] : array();
25+
$saverConfig = array_merge($defaultConfig, $userConfig);
2426
$saver = new Saver\FileSaver($saverConfig['filename']);
2527
break;
2628

2729
case Profiler::SAVER_UPLOAD:
28-
$saverConfig = array_merge(array(
30+
$defaultConfig = array(
2931
'uri' => null,
3032
'token' => null,
3133
'timeout' => 3,
32-
), isset($config['save.handler.upload']) ? $config['save.handler.upload'] : array());
34+
);
35+
$userConfig = isset($config['save.handler.upload']) && is_array($config['save.handler.upload']) ? $config['save.handler.upload'] : array();
36+
$saverConfig = array_merge($defaultConfig, $userConfig);
3337
$saver = new Saver\UploadSaver($saverConfig['uri'], $saverConfig['token'], $saverConfig['timeout']);
3438
break;
3539

3640
case Profiler::SAVER_STACK:
37-
$saverConfig = array_merge(array(
41+
$defaultConfig = array(
3842
'savers' => array(),
3943
'saveAll' => false,
40-
), isset($config['save.handler.stack']) ? $config['save.handler.stack'] : array());
44+
);
45+
$userConfig = isset($config['save.handler.stack']) && is_array($config['save.handler.stack']) ? $config['save.handler.stack'] : array();
46+
$saverConfig = array_merge($defaultConfig, $userConfig);
4147

4248
$savers = array();
4349
foreach ($saverConfig['savers'] as $saver) {

0 commit comments

Comments
 (0)