public function extract(\ZipArchive $archive): void
    {
        $destination = $this->pluginDir;

        if (!is_writable($destination)) {
            throw new PluginExtractionException(sprintf('Destination directory "%s" is not writable', $destination));
        }

        $pluginName = $this->getPluginName($archive);
        $this->validatePluginZip($pluginName, $archive);

        $oldFile = $this->findOldFile($pluginName);
        $backupFile = $this->createBackupFile($oldFile);

        try {
            $archive->extractTo($destination);

            if ($backupFile !== '') {
                $this->filesystem->remove($backupFile);
            }

            unlink($archive->filename);
        } catch (\Exception $e) {
            if ($backupFile !== '') {
                $this->filesystem->rename($backupFile, $oldFile);
            }
            throw $e;
        }

        $this->clearOpcodeCache();
    }
public function extract(\ZipArchive $archive): void
    {
        $destination = $this->pluginDir;

        if (!is_writable($destination)) {
            throw new PluginExtractionException(sprintf('Destination directory "%s" is not writable', $destination));
        }

        $pluginName = $this->getPluginName($archive);
        $this->validatePluginZip($pluginName, $archive);

        $oldFile = $this->findOldFile($pluginName);
        $backupFile = $this->createBackupFile($oldFile);

        try {
            $archive->extractTo($destination);

            if ($backupFile !== '') {
                $this->filesystem->remove($backupFile);
            }

            unlink($archive->filename);
        } catch (\Exception $e) {
            if ($backupFile !== '') {
                $this->filesystem->rename($backupFile, $oldFile);
            }
            throw $e;
        }

        $this->clearOpcodeCache();
    }
public function extract ( \ ZipArchive $ archive ) : void { $ destination = $ this -> pluginDir ; if ( ! is_writable ( $ destination ) ) { throw new PluginExtractionException ( sprintf ( 'Destination directory "%s" is not writable' , $ destination ) ) ; } $ pluginName = $ this -> getPluginName ( $ archive ) ; $ this -> validatePluginZip ( $ pluginName , $ archive ) ; $ oldFile = $ this -> findOldFile ( $ pluginName ) ; $ backupFile = $ this -> createBackupFile ( $ oldFile ) ; try { $ archive -> extractTo ( $ destination ) ; if ( $ backupFile !== '' ) { $ this -> filesystem -> remove ( $ backupFile ) ; } unlink ( $ archive -> filename ) ; } catch ( \ Exception $ e ) { if ( $ backupFile !== '' ) { $ this -> filesystem -> rename ( $ backupFile , $ oldFile ) ; } throw $ e ; } $ this -> clearOpcodeCache ( ) ; }
Extracts the provided zip file to the plugin directory
Extracts the provided zip file to the plugin directory