public function setConfig($name, $value)
{
$contents = $this->fs->get($this->path);
if (preg_match("/^{$name}=.*\$/m", $contents)) {
$contents = preg_replace("/^{$name}=.*\$/m", "{$name}={$value}", $contents);
} else {
$contents .= "{$name}={$value}" . PHP_EOL;
}
return $this->fs->put($this->path, $contents);
}
public function test_Should_AddNewConfig_When_ConfigDoesNotExist() { $contentsBefore = <<<EOF NAME1=value1 NAME2=value2 EOF; $contentsAfter = <<<EOF NAME1=value1 NAME2=value2 NAME3=value3 EOF; $dotenv = vfsStream::newFile('.env')->at($this->rootDir)->setContent($contentsBefore); $dotenvWriter = new DotenvWriter(new LaravelFilesystem($this->app['files']), vfsStream::url('rootDir/.env')); $dotenvWriter->setConfig('NAME3', 'value3'); $this->assertEquals($contentsAfter, $dotenv->getContent()); }