/**
     * 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);
    }
示例#2
0
 /**
  * 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);
 }