/** * Test that the writing of a loaded phar results in an equal file. * * @return void * * @dataProvider testWritingFlagsProvider */ public function testWriteLoaded($compression, $signatureFlag) { $pharfile = $this->getTempFile('temp.phar'); $phar = new \Phar($pharfile, 0, 'temp.phar'); $phar->startBuffering(); $phar->addFromString('/bin/script', $fileData = <<<EOF #!/usr/bin/php <?php echo 'hello world'; EOF ); $phar->setDefaultStub('/bin/script', '/web/index'); $phar->stopBuffering(); if (0 !== $signatureFlag) { $phar->setSignatureAlgorithm($signatureFlag); } if ($compression !== \Phar::NONE) { $phar->compress($compression); } unset($phar); $reader = new PharReader(); $phar = $reader->load($pharfile); $pharfile2 = $this->getTempFile('temp.phar'); $writer = new PharWriter(); $writer->save($phar, $pharfile2); unset($writer); $this->assertFileEquals($pharfile, $pharfile2); }
/** * Finalize the project. * * @return void */ public function finalize() { // disabled for interoperability with systems without gzip ext $this->phar->compressFiles(\Phar::GZ); $filename = $this->configuration->get('phar'); $this->phar->getPharchive()->setAlias(basename($filename)); $writer = new PharWriter(); $writer->save($this->phar->getPharchive(), $filename); unset($this->phar); chmod($filename, 0755); }