MyBuilder\Conductor\PackageZipper::zip PHP Метод

zip() публичный Метод

public zip ( SplFileInfo $composerFile ) : string
$composerFile SplFileInfo the package composer.json file path
Результат string The package conductor file path
    public function zip(\SplFileInfo $composerFile)
    {
        $json = json_decode(file_get_contents($composerFile), true);
        if (false === isset($json['version'])) {
            throw new \RuntimeException('Package "' . $json['name'] . '" has no version defined in file: ' . $composerFile->getPathname() . '.');
        }
        $packageZipPath = $this->getZipPath($json['name'], $json['version']);
        if (false === file_exists($packageZipPath)) {
            $this->createZip($composerFile, $packageZipPath);
        }
        $this->verifyZip($composerFile, $packageZipPath, $json);
        return $packageZipPath;
    }

Usage Example

Пример #1
0
 public function updatePackages($paths, PackageZipper $packageZipper)
 {
     $finder = new Finder();
     $finder->files()->exclude('vendor')->name('composer.json')->depth(0);
     $results = array();
     foreach ($finder->in($paths) as $file) {
         $results[] = $packageZipper->zip($file);
     }
     return $results;
 }