guzzle = $guzzle; $this->throw = $throw; } public function download(string $url, string $path, $shasum = null): PackageManager { if ($this->throw) { throw new \Exception(''); } else { return $this; } } public function extract(string $destination): void { // } public function progress(): float { return 0.0; } }