/** * Unregisters a package from the list of available packages * * @param PackageInterface $package The package to be unregistered * @return void * @throws Exception\InvalidPackageStateException */ protected function unregisterPackage(PackageInterface $package) { $packageKey = $package->getPackageKey(); if (!$this->isPackageAvailable($packageKey)) { throw new Exception\InvalidPackageStateException('Package "' . $packageKey . '" is not registered.', 1338996142); } if (!isset($this->packages[$packageKey])) { return; } $composerName = $package->getComposerName(); unset($this->packages[$packageKey], $this->packageKeys[strtolower($packageKey)], $this->packageStatesConfiguration['packages'][$composerName]); $this->sortAndSavePackageStates($this->packageStatesConfiguration); }