コード例 #1
0
 /**
  * Build the manifest and return it.
  *
  * @return void
  */
 private function buildManifest()
 {
     $files = $this->phar->getFiles();
     $alias = $this->phar->getAlias();
     $metaData = $this->phar->getMetadata();
     if (!empty($metaData)) {
         $metaData = serialize($metaData);
     }
     $manifest = new StreamWriter('php://temp');
     $manifest->writeUint32le(count($files))->writeUint16be($this->phar->getApiVersion())->writeUint32le($this->phar->getFlags())->writeUint32le(strlen($alias))->write($alias)->writeUint32le(strlen($metaData))->write($metaData);
     // Add files now.
     foreach ($files as $file) {
         $manifest->writeStream($this->serializeFile($file));
     }
     $this->file->writeUint32le($manifest->getLength());
     $this->file->writeStream($manifest->seek(0));
 }