Narven
11/13/2017 - 10:24 AM

Build Symfony console component as phar

Build Symfony console component as phar

#!/usr/bin/php -dphar.readonly=0
<?php

$srcRoot = realpath(__DIR__."/vendor");
$buildRoot = realpath(__DIR__);
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($srcRoot, FilesystemIterator::SKIP_DOTS), RecursiveIteratorIterator::LEAVES_ONLY);

/*
foreach($iterator as $file){
    var_dump($file->getFilename());
}
*/

echo "Build Symfony Console phar\n";

$phar = new Phar($buildRoot.'/console.phar', 0, 'console.phar');
$phar->buildFromIterator($iterator, $srcRoot);
$phar->setStub($phar->createDefaultStub("autoload.php"));

exit("Build complete\n");
{
    "require": {
        "symfony/console": "@stable",
        "symfony/filesystem": "@stable",
        "symfony/finder": "@stable",
        "symfony/process": "@stable"
    },
    "minimum-stability": "dev",
    "config": {
      "preferred-install": "dist"
    },
    "prefer-stable": true,
    "scripts": {
        "post-update-cmd": "php build.php",
        "post-install-cmd": "php build.php"
    }
}
<?php

use Symfony\Component\Console\Output\ConsoleOutput as Output;

require_once(__DIR__.'/console.phar');

$console = new Output();
$console->writeln("<info>Green Text</info>");