%PDF- %PDF-
Direktori : /var/www/projetos/suporte.iigd.com.br/vendor/wapmorgan/unified-archive/src/Drivers/OneFile/ |
Current File : /var/www/projetos/suporte.iigd.com.br/vendor/wapmorgan/unified-archive/src/Drivers/OneFile/Bzip.php |
<?php namespace wapmorgan\UnifiedArchive\Drivers\OneFile; use wapmorgan\UnifiedArchive\Formats; class Bzip extends OneFileDriver { const EXTENSION_NAME = 'bz2'; const FORMAT = Formats::BZIP; /** * @return array */ public static function getSupportedFormats() { return [ Formats::BZIP, ]; } /** * @inheritDoc */ public static function getDescription() { return 'adapter for ext-bzip2'.(static::isInstalled() ? ' ('.phpversion(static::EXTENSION_NAME).')' : null); } /** * @inheritDoc */ public function __construct($archiveFileName, $format, $password = null) { parent::__construct($archiveFileName, $format, $password); $this->modificationTime = filemtime($this->fileName); } /** * @param string $fileName * * @return string|false */ public function getFileContent($fileName = null) { return bzdecompress(file_get_contents($this->fileName)); } /** * @param string $fileName * * @return bool|resource|string */ public function getFileStream($fileName = null) { return bzopen($this->fileName, 'r'); } /** * @param string $data * @param int $compressionLevel * @return mixed|string */ protected static function compressData($data, $compressionLevel) { static $compressionLevelMap = [ self::COMPRESSION_NONE => 1, self::COMPRESSION_WEAK => 2, self::COMPRESSION_AVERAGE => 4, self::COMPRESSION_STRONG => 7, self::COMPRESSION_MAXIMUM => 9, ]; static $work_factor_multiplier = 27; // it seems not working at all $work_factor = ($compressionLevelMap[$compressionLevel] * $work_factor_multiplier); return bzcompress($data, $compressionLevelMap[$compressionLevel], $work_factor); } }