function __c3_build_html_report(PHP_CodeCoverage $codeCoverage, $path) { $writer = new PHP_CodeCoverage_Report_HTML(); $writer->process($codeCoverage, $path . 'html'); if (file_exists($path . '.tar')) { unlink($path . '.tar'); } $phar = new PharData($path . '.tar'); $phar->setSignatureAlgorithm(Phar::SHA1); $files = $phar->buildFromDirectory($path . 'html'); array_map('unlink', $files); if (in_array('GZ', Phar::getSupportedCompression())) { if (file_exists($path . '.tar.gz')) { unlink($path . '.tar.gz'); } $phar->compress(\Phar::GZ); // close the file so that we can rename it unset($phar); unlink($path . '.tar'); rename($path . '.tar.gz', $path . '.tar'); } return $path . '.tar'; }
public function run() { $this->printTaskInfo("Creating <info>{$this->filename}</info>"); $this->phar->setSignatureAlgorithm(\Phar::SHA1); $this->phar->startBuffering(); $this->printTaskInfo('Packing ' . count($this->files) . ' files into phar'); $progress = new ProgressBar($this->getOutput()); $progress->start(count($this->files)); $this->startTimer(); foreach ($this->files as $path => $content) { $this->phar->addFromString($path, $content); $progress->advance(); } $this->phar->stopBuffering(); $progress->finish(); $this->getOutput()->writeln(''); if ($this->compress and in_array('GZ', \Phar::getSupportedCompression())) { if (count($this->files) > 1000) { $this->printTaskInfo("Too many files. Compression DISABLED"); } else { $this->printTaskInfo($this->filename . " compressed"); $this->phar = $this->phar->compressFiles(\Phar::GZ); } } $this->stopTimer(); $this->printTaskSuccess("<info>{$this->filename}</info> produced"); return Result::success($this, '', ['time' => $this->getExecutionTime()]); }
<?php var_dump(Phar::getSupportedCompression()); ?> ===DONE===
public function run() { $this->printTaskInfo('Creating {filename}', ['filename' => $this->filename]); $this->phar->setSignatureAlgorithm(\Phar::SHA1); $this->phar->startBuffering(); $this->printTaskInfo('Packing {file-count} files into phar', ['file-count' => count($this->files)]); $this->startProgressIndicator(); foreach ($this->files as $path => $content) { $this->phar->addFromString($path, $content); $this->advanceProgressIndicator(); } $this->phar->stopBuffering(); $this->advanceProgressIndicator(); if ($this->compress and in_array('GZ', \Phar::getSupportedCompression())) { if (count($this->files) > 1000) { $this->printTaskInfo('Too many files. Compression DISABLED'); } else { $this->printTaskInfo('{filename} compressed', ['filename' => $this->filename]); $this->phar = $this->phar->compressFiles(\Phar::GZ); } } $this->advanceProgressIndicator(); $this->stopProgressIndicator(); $this->printTaskSuccess('{filename} produced', ['filename' => $this->filename]); return Result::success($this, '', ['time' => $this->getExecutionTime()]); }
/** * Compile new composer.phar * @param string $filename */ public function compile($filename = 'codecept.phar') { if(file_exists($filename)) { unlink($filename); } $phar = new \Phar($filename, 0, 'codecept.phar'); $phar->setSignatureAlgorithm(\Phar::SHA1); $phar->startBuffering(); $finder = new Finder(); $finder->files() ->ignoreVCS(true) ->name('*.php') ->name('*.tpl.dist') ->name('*.html.dist') ->in($this->compileDir . '/src'); foreach ($finder as $file) { $this->addFile($phar, $file); } $finder = new Finder(); $finder ->files() ->ignoreVCS(true) ->name('*.php') ->name('*.js') ->name('*.css') ->name('*.png') ->name('*.tpl.dist') ->name('*.html.dist') ->exclude('Tests') ->exclude('tests') ->exclude('benchmark') ->exclude('demo') ->in($this->compileDir.'/plugins/frameworks'); foreach($finder as $file) { $this->addFile($phar, $file); } $finder = new Finder(); $finder ->files() ->ignoreVCS(true) ->name('*.php') ->name('*.css') ->name('*.png') ->name('*.js') ->name('*.css') ->name('*.png') ->name('*.tpl.dist') ->name('*.html.dist') ->exclude('Tests') ->exclude('tests') ->exclude('benchmark') ->exclude('demo') ->in($this->compileDir.'/vendor') ; foreach($finder as $file) { $this->addFile($phar, $file); } $this->addFile($phar, new \SplFileInfo($this->compileDir.'/autoload.php')); $this->setMainExecutable($phar); $this->setStub($phar); $phar->stopBuffering(); if(in_array('GZ', \Phar::getSupportedCompression())) { //do not use compressFiles as it has issue with temporary file when adding large amount of files // $phar->compressFiles(\Phar::GZ); $phar = $phar->compressFiles(\Phar::GZ); echo "Compressed\r\n"; } else { $phar = $phar->compress(\Phar::NONE); } unset($phar); }
public function run() { $this->printTaskInfo("creating <info>{$this->filename}</info>"); $this->phar->setSignatureAlgorithm(\Phar::SHA1); $this->phar->startBuffering(); $this->printTaskInfo('packing ' . count($this->files) . ' files into phar'); $progress = new ProgressHelper(); $progress->start($this->getOutput(), count($this->files)); foreach ($this->files as $path => $content) { $this->phar->addFromString($path, $content); $progress->advance(); } $this->phar->stopBuffering(); $progress->finish(); if ($this->compress and in_array('GZ', \Phar::getSupportedCompression())) { $this->printTaskInfo($this->filename . " compressed"); $this->phar = $this->phar->compressFiles(\Phar::GZ); } $this->printTaskInfo($this->filename . " produced"); return Result::success($this); }