Пример #1
0
    $version = file_get_contents(__DIR__ . '/VERSION');
}
$phar_path = __DIR__ . "/dist/shade-{$version}.phar";
if (is_file($phar_path)) {
    print "File '{$phar_path}' exists. Overwrite (y/n)?\n";
    if (strtolower(trim(fgets(STDIN))) === 'y') {
        unlink($phar_path);
    } else {
        die("Done, file kept...\n");
    }
}
require 'vendor/autoload.php';
use Phine\Phar\Builder, Phine\Phar\Stub;
$skip_if_found = ['/.git', '/.svn', '/smarty/documentation', '/smarty/development', '/tests', '/Tests'];
$source_path_strlen = strlen(__DIR__);
$builder = Builder::create($phar_path);
$builder->addFile(__DIR__ . '/LICENSE', 'LICENSE');
$builder->addFile(__DIR__ . '/VERSION', 'VERSION');
foreach (['bin', 'src', 'vendor'] as $dir_to_add) {
    /**
     * @var RecursiveDirectoryIterator[] $iterator
     */
    foreach ($iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(__DIR__ . '/' . $dir_to_add, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::SELF_FIRST) as $item) {
        $pathname = $item->getPathname();
        $short_pathname = substr($pathname, $source_path_strlen + 1);
        foreach ($skip_if_found as $what) {
            if (strpos($pathname, $what) !== false) {
                continue 2;
            }
        }
        if ($item->isDir()) {
Пример #2
0
<?php

require 'libraries/autoload.php';
use Phine\Phar\Builder;
use Phine\Phar\Stub;
@unlink('manialive.phar');
$builder = Builder::create('manialive.phar');
class ManiaLiveIterator extends RecursiveFilterIterator
{
    public function accept()
    {
        $excludeFiles = array('.git', 'config.ini');
        $path = explode(DIRECTORY_SEPARATOR, $this->current()->getPath());
        return !in_array('.git', $path, true) && !in_array($this->current()->getFilename(), $excludeFiles);
    }
}
$iterator = new RecursiveIteratorIterator(new ManiaLiveIterator(new RecursiveDirectoryIterator(__DIR__, RecursiveDirectoryIterator::SKIP_DOTS)), RecursiveIteratorIterator::LEAVES_ONLY);
$builder->buildFromIterator($iterator, __DIR__);
$builder->setStub(Stub::create()->mapPhar('manialive.phar')->addRequire('bootstrapper.php')->getStub());
Пример #3
0
<?php

require './vendor/autoload.php';
use Phine\Phar\Builder;
use Phine\Phar\Stub;
// create a new Phar instance
$builder = Builder::create('./build/GettyImagesApi.phar');
$builder->buildFromDirectory('./src');
$builder->setStub(Stub::create()->addRequire('GettyImages_Client.php')->mapPhar("GettyImagesApi.phar")->selfExtracting()->getStub());