<?php
namespace PhpBrew\Command;
use CLIFramework\Command;
use PhpBrew\VariantBuilder;
class VariantsCommand extends Command
{
public function brief()
{
return 'List php variants';
}
public function usage()
{
return 'phpbrew variants [php-version]';
}
public function wrapLine($line, $prefix = ' ', $indent = ' ')
{
$lineX = 0;
$newLine = $prefix;
for ($i = 0; $i < strlen($line); $i++ && $lineX++) {
$c = $line[$i];
$newLine .= $c;
if ($lineX > 68 && $c === ' ') {
$newLine .= PHP_EOL . $indent;
$lineX = 0;
}
}
return $newLine;
}
public function execute($version = null)
{
$variants = new VariantBuilder();
$list = $variants->getVariantNames();
sort($list);
echo "Variants: " . PHP_EOL;
echo $this->wrapLine(implode(', ', $list)) , PHP_EOL;
echo PHP_EOL, PHP_EOL;
echo "Virtual variants: ", PHP_EOL;
foreach ($variants->virtualVariants as $name => $subvars) {
echo $this->wrapLine("$name: " . implode(', ', $subvars)) , PHP_EOL;
}
echo PHP_EOL, PHP_EOL;
echo "Using variants to build PHP:", PHP_EOL;
echo PHP_EOL;
echo " phpbrew install php-5.3.10 +default", PHP_EOL;
echo " phpbrew install php-5.3.10 +mysql +pdo", PHP_EOL;
echo " phpbrew install php-5.3.10 +mysql +pdo +apxs2", PHP_EOL;
echo " phpbrew install php-5.3.10 +mysql +pdo +apxs2=/usr/bin/apxs2", PHP_EOL;
echo PHP_EOL, PHP_EOL;
}
}