diff --git a/src/Config/ConfigFile.php b/src/Config/ConfigFile.php index 4bddc5e05..3fdc4940c 100644 --- a/src/Config/ConfigFile.php +++ b/src/Config/ConfigFile.php @@ -70,24 +70,22 @@ public static function read(string $file): ?ConfigFile } /** - * @param string $key - * @param $value + * @param string|array $key + * @param string|null $value * @return $this */ - public function set(): ConfigFile + public function set($key, string $value = null): ConfigFile { - $args = func_get_args(); - - if (count($args) === 1 && is_array($args[0])) { - foreach ($args[0] as $key => $value) { - $this->set($key, $value); + if (is_array($key)) { + foreach ($key as $name => $value) { + $this->set($name, $value); } return $this; } - if (count($args) !== 2 || !is_string($args[0])) { - throw new \InvalidArgumentException('invalid args passed'); + if ($key && is_null($value)) { + throw new ApplicationException('You must specify a value to set for the given key.'); } list($key, $value) = $args;