public function install(InstalledRepositoryInterface $repo, PackageInterface $package)
    {
        $extra = $package->getExtra();
        if (empty($extra['class'])) {
            throw new \UnexpectedValueException('Error while installing '.$package->getPrettyName().', composer-plugin packages should have a class defined in their extra key to be usable.');
        }

        parent::install($repo, $package);
        try {
            $this->composer->getPluginManager()->registerPackage($package, true);
        } catch (\Exception $e) {
            // Rollback installation
            $this->io->writeError('Plugin installation failed, rolling back');
            parent::uninstall($repo, $package);
            throw $e;
        }
    }
public function install(InstalledRepositoryInterface $repo, PackageInterface $package)
    {
        $extra = $package->getExtra();
        if (empty($extra['class'])) {
            throw new \UnexpectedValueException('Error while installing '.$package->getPrettyName().', composer-plugin packages should have a class defined in their extra key to be usable.');
        }

        parent::install($repo, $package);
        try {
            $this->composer->getPluginManager()->registerPackage($package, true);
        } catch (\Exception $e) {
            
            $this->io->writeError('Plugin installation failed, rolling back');
            parent::uninstall($repo, $package);
            throw $e;
        }
    }
public function install ( InstalledRepositoryInterface $ repo , PackageInterface $ package ) { $ extra = $ package -> getExtra ( ) ; if ( empty ( $ extra [ 'class' ] ) ) { throw new \ UnexpectedValueException ( 'Error while installing ' . $ package -> getPrettyName ( ) . ', composer-plugin packages should have a class defined in their extra key to be usable.' ) ; } parent :: install ( $ repo , $ package ) ; try { $ this -> composer -> getPluginManager ( ) -> registerPackage ( $ package , true ) ; } catch ( \ Exception $ e ) { // Rollback installation $ this -> io -> writeError ( 'Plugin installation failed, rolling back' ) ; parent :: uninstall ( $ repo , $ package ) ; throw $ e ; } }
{@inheritDoc}
{