public function uninstall(InstalledRepositoryInterface $repo, PackageInterface $package)
    {
        if (!$repo->hasPackage($package)) {
            throw new \InvalidArgumentException('Package is not installed: '.$package);
        }

        $this->removeCode($package);
        $this->binaryInstaller->removeBinaries($package);
        $repo->removePackage($package);

        $downloadPath = $this->getPackageBasePath($package);
        if (strpos($package->getName(), '/')) {
            $packageVendorDir = dirname($downloadPath);
            if (is_dir($packageVendorDir) && $this->filesystem->isDirEmpty($packageVendorDir)) {
                Silencer::call('rmdir', $packageVendorDir);
            }
        }
    }
public function uninstall(InstalledRepositoryInterface $repo, PackageInterface $package)
    {
        if (!$repo->hasPackage($package)) {
            throw new \InvalidArgumentException('Package is not installed: '.$package);
        }

        $this->removeCode($package);
        $this->binaryInstaller->removeBinaries($package);
        $repo->removePackage($package);

        $downloadPath = $this->getPackageBasePath($package);
        if (strpos($package->getName(), '/')) {
            $packageVendorDir = dirname($downloadPath);
            if (is_dir($packageVendorDir) && $this->filesystem->isDirEmpty($packageVendorDir)) {
                Silencer::call('rmdir', $packageVendorDir);
            }
        }
    }
public function uninstall ( InstalledRepositoryInterface $ repo , PackageInterface $ package ) { if ( ! $ repo -> hasPackage ( $ package ) ) { throw new \ InvalidArgumentException ( 'Package is not installed: ' . $ package ) ; } $ this -> removeCode ( $ package ) ; $ this -> binaryInstaller -> removeBinaries ( $ package ) ; $ repo -> removePackage ( $ package ) ; $ downloadPath = $ this -> getPackageBasePath ( $ package ) ; if ( strpos ( $ package -> getName ( ) , '/' ) ) { $ packageVendorDir = dirname ( $ downloadPath ) ; if ( is_dir ( $ packageVendorDir ) && $ this -> filesystem -> isDirEmpty ( $ packageVendorDir ) ) { Silencer :: call ( 'rmdir' , $ packageVendorDir ) ; } } }
{@inheritDoc}
{