Skip to content

Commit 8232dba

Browse files
authored
Merge pull request #33 from geimsdin/master
Update Rewrite.php
2 parents 13f15f3 + 0451b8f commit 8232dba

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

src/DataWriter/FileWriter.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public function write(string $item, $value, string $filename, string $fileExtens
6262
return !($this->files->put($path, $contents) === false);
6363
}
6464

65-
private function getPath(string $item, string $filename, string $ext = '.php'): string
65+
private function getPath(string $item, string $filename, string $ext = '.php'): ?string
6666
{
6767
$file = "{$this->defaultPath}/{$filename}{$ext}";
6868

@@ -88,4 +88,4 @@ private function hasKey(string $path, string $key): bool
8888

8989
return $isset;
9090
}
91-
}
91+
}

src/DataWriter/Rewrite.php

+7-1
Original file line numberDiff line numberDiff line change
@@ -48,16 +48,22 @@ public function toContent(string $contents, array $newValues, bool $useValidatio
4848

4949
$result = eval('?>'.$contents);
5050

51+
5152
foreach ($newValues as $key => $expectedValue) {
5253
$parts = explode('.', $key);
5354

5455
$array = $result;
5556
foreach ($parts as $part) {
57+
5658
if (!is_array($array) || !array_key_exists($part, $array)) {
5759
throw new Exception(sprintf('Unable to rewrite key "%s" in config, does it exist?', $key));
5860
}
61+
if ( array_key_exists($part, $array) && is_string($array[$part])) {
62+
$array = $expectedValue;
63+
} else {
64+
$array = $array[$part];
65+
}
5966

60-
$array = $array[$part];
6167
}
6268
$actualValue = $array;
6369

0 commit comments

Comments
 (0)