public function withEnv($newEnv, $callback)
{
// reset environment variables
$oldEnv = $this->resetEnv($newEnv + array('HOME' => null, 'PHPBREW_HOME' => getenv('PHPBREW_HOME'), 'PHPBREW_PATH' => null, 'PHPBREW_PHP' => null, 'PHPBREW_ROOT' => getenv('PHPBREW_ROOT'), 'PHPBREW_LOOKUP_PREFIX' => null));
try {
$callback($this);
$this->resetEnv($oldEnv);
} catch (\Exception $e) {
$this->resetEnv($oldEnv);
throw $e;
}
}