update2
This commit is contained in:
parent
98419bd18d
commit
8a69e45efa
4919 changed files with 28311 additions and 224136 deletions
0
pfosten/vendor/symfony/console/.gitignore
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/.gitignore
vendored
Executable file → Normal file
344
pfosten/vendor/symfony/console/Application.php
vendored
Executable file → Normal file
344
pfosten/vendor/symfony/console/Application.php
vendored
Executable file → Normal file
|
|
@ -11,34 +11,36 @@
|
|||
|
||||
namespace Symfony\Component\Console;
|
||||
|
||||
use Symfony\Component\Console\Exception\ExceptionInterface;
|
||||
use Symfony\Component\Console\Formatter\OutputFormatter;
|
||||
use Symfony\Component\Console\Helper\DebugFormatterHelper;
|
||||
use Symfony\Component\Console\Helper\Helper;
|
||||
use Symfony\Component\Console\Helper\ProcessHelper;
|
||||
use Symfony\Component\Console\Helper\QuestionHelper;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\StreamableInputInterface;
|
||||
use Symfony\Component\Console\Input\ArgvInput;
|
||||
use Symfony\Component\Console\Input\ArrayInput;
|
||||
use Symfony\Component\Console\Input\InputDefinition;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Input\InputAwareInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Output\ConsoleOutput;
|
||||
use Symfony\Component\Console\Output\ConsoleOutputInterface;
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Command\HelpCommand;
|
||||
use Symfony\Component\Console\Command\ListCommand;
|
||||
use Symfony\Component\Console\Helper\HelperSet;
|
||||
use Symfony\Component\Console\Helper\FormatterHelper;
|
||||
use Symfony\Component\Console\CommandLoader\CommandLoaderInterface;
|
||||
use Symfony\Component\Console\Event\ConsoleCommandEvent;
|
||||
use Symfony\Component\Console\Event\ConsoleErrorEvent;
|
||||
use Symfony\Component\Console\Event\ConsoleExceptionEvent;
|
||||
use Symfony\Component\Console\Event\ConsoleTerminateEvent;
|
||||
use Symfony\Component\Console\Exception\CommandNotFoundException;
|
||||
use Symfony\Component\Console\Exception\ExceptionInterface;
|
||||
use Symfony\Component\Console\Exception\LogicException;
|
||||
use Symfony\Component\Console\Formatter\OutputFormatter;
|
||||
use Symfony\Component\Console\Helper\DebugFormatterHelper;
|
||||
use Symfony\Component\Console\Helper\FormatterHelper;
|
||||
use Symfony\Component\Console\Helper\Helper;
|
||||
use Symfony\Component\Console\Helper\HelperSet;
|
||||
use Symfony\Component\Console\Helper\ProcessHelper;
|
||||
use Symfony\Component\Console\Helper\QuestionHelper;
|
||||
use Symfony\Component\Console\Input\ArgvInput;
|
||||
use Symfony\Component\Console\Input\ArrayInput;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Input\InputAwareInterface;
|
||||
use Symfony\Component\Console\Input\InputDefinition;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Input\StreamableInputInterface;
|
||||
use Symfony\Component\Console\Output\ConsoleOutput;
|
||||
use Symfony\Component\Console\Output\ConsoleOutputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Debug\ErrorHandler;
|
||||
use Symfony\Component\Debug\Exception\FatalThrowableError;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
||||
|
||||
|
|
@ -64,6 +66,7 @@ class Application
|
|||
private $runningCommand;
|
||||
private $name;
|
||||
private $version;
|
||||
private $commandLoader;
|
||||
private $catchExceptions = true;
|
||||
private $autoExit = true;
|
||||
private $definition;
|
||||
|
|
@ -72,6 +75,7 @@ class Application
|
|||
private $terminal;
|
||||
private $defaultCommand;
|
||||
private $singleCommand;
|
||||
private $initialized;
|
||||
|
||||
/**
|
||||
* @param string $name The name of the application
|
||||
|
|
@ -83,12 +87,6 @@ class Application
|
|||
$this->version = $version;
|
||||
$this->terminal = new Terminal();
|
||||
$this->defaultCommand = 'list';
|
||||
$this->helperSet = $this->getDefaultHelperSet();
|
||||
$this->definition = $this->getDefaultInputDefinition();
|
||||
|
||||
foreach ($this->getDefaultCommands() as $command) {
|
||||
$this->add($command);
|
||||
}
|
||||
}
|
||||
|
||||
public function setDispatcher(EventDispatcherInterface $dispatcher)
|
||||
|
|
@ -96,12 +94,14 @@ class Application
|
|||
$this->dispatcher = $dispatcher;
|
||||
}
|
||||
|
||||
public function setCommandLoader(CommandLoaderInterface $commandLoader)
|
||||
{
|
||||
$this->commandLoader = $commandLoader;
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs the current application.
|
||||
*
|
||||
* @param InputInterface $input An Input instance
|
||||
* @param OutputInterface $output An Output instance
|
||||
*
|
||||
* @return int 0 if everything went fine, or an error code
|
||||
*
|
||||
* @throws \Exception When running fails. Bypass this when {@link setCatchExceptions()}.
|
||||
|
|
@ -119,6 +119,25 @@ class Application
|
|||
$output = new ConsoleOutput();
|
||||
}
|
||||
|
||||
$renderException = function ($e) use ($output) {
|
||||
if (!$e instanceof \Exception) {
|
||||
$e = class_exists(FatalThrowableError::class) ? new FatalThrowableError($e) : new \ErrorException($e->getMessage(), $e->getCode(), E_ERROR, $e->getFile(), $e->getLine());
|
||||
}
|
||||
if ($output instanceof ConsoleOutputInterface) {
|
||||
$this->renderException($e, $output->getErrorOutput());
|
||||
} else {
|
||||
$this->renderException($e, $output);
|
||||
}
|
||||
};
|
||||
if ($phpHandler = set_exception_handler($renderException)) {
|
||||
restore_exception_handler();
|
||||
if (!\is_array($phpHandler) || !$phpHandler[0] instanceof ErrorHandler) {
|
||||
$debugHandler = true;
|
||||
} elseif ($debugHandler = $phpHandler[0]->setExceptionHandler($renderException)) {
|
||||
$phpHandler[0]->setExceptionHandler($debugHandler);
|
||||
}
|
||||
}
|
||||
|
||||
if (null !== $this->dispatcher && $this->dispatcher->hasListeners(ConsoleEvents::EXCEPTION)) {
|
||||
@trigger_error(sprintf('The "ConsoleEvents::EXCEPTION" event is deprecated since Symfony 3.3 and will be removed in 4.0. Listen to the "ConsoleEvents::ERROR" event instead.'), E_USER_DEPRECATED);
|
||||
}
|
||||
|
|
@ -126,24 +145,13 @@ class Application
|
|||
$this->configureIO($input, $output);
|
||||
|
||||
try {
|
||||
$e = null;
|
||||
$exitCode = $this->doRun($input, $output);
|
||||
} catch (\Exception $x) {
|
||||
$e = $x;
|
||||
} catch (\Throwable $x) {
|
||||
$e = new FatalThrowableError($x);
|
||||
}
|
||||
|
||||
if (null !== $e) {
|
||||
if (!$this->catchExceptions || !$x instanceof \Exception) {
|
||||
throw $x;
|
||||
} catch (\Exception $e) {
|
||||
if (!$this->catchExceptions) {
|
||||
throw $e;
|
||||
}
|
||||
|
||||
if ($output instanceof ConsoleOutputInterface) {
|
||||
$this->renderException($e, $output->getErrorOutput());
|
||||
} else {
|
||||
$this->renderException($e, $output);
|
||||
}
|
||||
$renderException($e);
|
||||
|
||||
$exitCode = $e->getCode();
|
||||
if (is_numeric($exitCode)) {
|
||||
|
|
@ -154,6 +162,20 @@ class Application
|
|||
} else {
|
||||
$exitCode = 1;
|
||||
}
|
||||
} finally {
|
||||
// if the exception handler changed, keep it
|
||||
// otherwise, unregister $renderException
|
||||
if (!$phpHandler) {
|
||||
if (set_exception_handler($renderException) === $renderException) {
|
||||
restore_exception_handler();
|
||||
}
|
||||
restore_exception_handler();
|
||||
} elseif (!$debugHandler) {
|
||||
$finalHandler = $phpHandler[0]->setExceptionHandler(null);
|
||||
if ($finalHandler !== $renderException) {
|
||||
$phpHandler[0]->setExceptionHandler($finalHandler);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->autoExit) {
|
||||
|
|
@ -170,9 +192,6 @@ class Application
|
|||
/**
|
||||
* Runs the current application.
|
||||
*
|
||||
* @param InputInterface $input An Input instance
|
||||
* @param OutputInterface $output An Output instance
|
||||
*
|
||||
* @return int 0 if everything went fine, or an error code
|
||||
*/
|
||||
public function doRun(InputInterface $input, OutputInterface $output)
|
||||
|
|
@ -195,7 +214,13 @@ class Application
|
|||
|
||||
if (!$name) {
|
||||
$name = $this->defaultCommand;
|
||||
$input = new ArrayInput(array('command' => $this->defaultCommand));
|
||||
$definition = $this->getDefinition();
|
||||
$definition->setArguments(array_merge(
|
||||
$definition->getArguments(),
|
||||
array(
|
||||
'command' => new InputArgument('command', InputArgument::OPTIONAL, $definition->getArgument('command')->getDescription(), $name),
|
||||
)
|
||||
));
|
||||
}
|
||||
|
||||
try {
|
||||
|
|
@ -226,11 +251,6 @@ class Application
|
|||
return $exitCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a helper set to be used with the command.
|
||||
*
|
||||
* @param HelperSet $helperSet The helper set
|
||||
*/
|
||||
public function setHelperSet(HelperSet $helperSet)
|
||||
{
|
||||
$this->helperSet = $helperSet;
|
||||
|
|
@ -243,14 +263,13 @@ class Application
|
|||
*/
|
||||
public function getHelperSet()
|
||||
{
|
||||
if (!$this->helperSet) {
|
||||
$this->helperSet = $this->getDefaultHelperSet();
|
||||
}
|
||||
|
||||
return $this->helperSet;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set an input definition to be used with this application.
|
||||
*
|
||||
* @param InputDefinition $definition The input definition
|
||||
*/
|
||||
public function setDefinition(InputDefinition $definition)
|
||||
{
|
||||
$this->definition = $definition;
|
||||
|
|
@ -263,6 +282,10 @@ class Application
|
|||
*/
|
||||
public function getDefinition()
|
||||
{
|
||||
if (!$this->definition) {
|
||||
$this->definition = $this->getDefaultInputDefinition();
|
||||
}
|
||||
|
||||
if ($this->singleCommand) {
|
||||
$inputDefinition = $this->definition;
|
||||
$inputDefinition->setArguments();
|
||||
|
|
@ -413,12 +436,12 @@ class Application
|
|||
* If a command with the same name already exists, it will be overridden.
|
||||
* If the command is not enabled it will not be added.
|
||||
*
|
||||
* @param Command $command A Command object
|
||||
*
|
||||
* @return Command|null The registered command if enabled or null
|
||||
*/
|
||||
public function add(Command $command)
|
||||
{
|
||||
$this->init();
|
||||
|
||||
$command->setApplication($this);
|
||||
|
||||
if (!$command->isEnabled()) {
|
||||
|
|
@ -428,7 +451,11 @@ class Application
|
|||
}
|
||||
|
||||
if (null === $command->getDefinition()) {
|
||||
throw new LogicException(sprintf('Command class "%s" is not correctly initialized. You probably forgot to call the parent constructor.', get_class($command)));
|
||||
throw new LogicException(sprintf('Command class "%s" is not correctly initialized. You probably forgot to call the parent constructor.', \get_class($command)));
|
||||
}
|
||||
|
||||
if (!$command->getName()) {
|
||||
throw new LogicException(sprintf('The command defined in "%s" cannot have an empty name.', \get_class($command)));
|
||||
}
|
||||
|
||||
$this->commands[$command->getName()] = $command;
|
||||
|
|
@ -451,7 +478,9 @@ class Application
|
|||
*/
|
||||
public function get($name)
|
||||
{
|
||||
if (!isset($this->commands[$name])) {
|
||||
$this->init();
|
||||
|
||||
if (!$this->has($name)) {
|
||||
throw new CommandNotFoundException(sprintf('The command "%s" does not exist.', $name));
|
||||
}
|
||||
|
||||
|
|
@ -478,7 +507,9 @@ class Application
|
|||
*/
|
||||
public function has($name)
|
||||
{
|
||||
return isset($this->commands[$name]);
|
||||
$this->init();
|
||||
|
||||
return isset($this->commands[$name]) || ($this->commandLoader && $this->commandLoader->has($name) && $this->add($this->commandLoader->get($name)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -521,7 +552,7 @@ class Application
|
|||
$message = sprintf('There are no commands defined in the "%s" namespace.', $namespace);
|
||||
|
||||
if ($alternatives = $this->findAlternatives($namespace, $allNamespaces)) {
|
||||
if (1 == count($alternatives)) {
|
||||
if (1 == \count($alternatives)) {
|
||||
$message .= "\n\nDid you mean this?\n ";
|
||||
} else {
|
||||
$message .= "\n\nDid you mean one of these?\n ";
|
||||
|
|
@ -533,8 +564,8 @@ class Application
|
|||
throw new CommandNotFoundException($message, $alternatives);
|
||||
}
|
||||
|
||||
$exact = in_array($namespace, $namespaces, true);
|
||||
if (count($namespaces) > 1 && !$exact) {
|
||||
$exact = \in_array($namespace, $namespaces, true);
|
||||
if (\count($namespaces) > 1 && !$exact) {
|
||||
throw new CommandNotFoundException(sprintf("The namespace \"%s\" is ambiguous.\nDid you mean one of these?\n%s", $namespace, $this->getAbbreviationSuggestions(array_values($namespaces))), array_values($namespaces));
|
||||
}
|
||||
|
||||
|
|
@ -555,11 +586,19 @@ class Application
|
|||
*/
|
||||
public function find($name)
|
||||
{
|
||||
$allCommands = array_keys($this->commands);
|
||||
$this->init();
|
||||
|
||||
$aliases = array();
|
||||
$allCommands = $this->commandLoader ? array_merge($this->commandLoader->getNames(), array_keys($this->commands)) : array_keys($this->commands);
|
||||
$expr = preg_replace_callback('{([^:]+|)}', function ($matches) { return preg_quote($matches[1]).'[^:]*'; }, $name);
|
||||
$commands = preg_grep('{^'.$expr.'}', $allCommands);
|
||||
|
||||
if (empty($commands) || count(preg_grep('{^'.$expr.'$}', $commands)) < 1) {
|
||||
if (empty($commands)) {
|
||||
$commands = preg_grep('{^'.$expr.'}i', $allCommands);
|
||||
}
|
||||
|
||||
// if no commands matched or we just matched namespaces
|
||||
if (empty($commands) || \count(preg_grep('{^'.$expr.'$}i', $commands)) < 1) {
|
||||
if (false !== $pos = strrpos($name, ':')) {
|
||||
// check if a namespace exists and contains commands
|
||||
$this->findNamespace(substr($name, 0, $pos));
|
||||
|
|
@ -568,7 +607,7 @@ class Application
|
|||
$message = sprintf('Command "%s" is not defined.', $name);
|
||||
|
||||
if ($alternatives = $this->findAlternatives($name, $allCommands)) {
|
||||
if (1 == count($alternatives)) {
|
||||
if (1 == \count($alternatives)) {
|
||||
$message .= "\n\nDid you mean this?\n ";
|
||||
} else {
|
||||
$message .= "\n\nDid you mean one of these?\n ";
|
||||
|
|
@ -580,17 +619,18 @@ class Application
|
|||
}
|
||||
|
||||
// filter out aliases for commands which are already on the list
|
||||
if (count($commands) > 1) {
|
||||
$commandList = $this->commands;
|
||||
$commands = array_filter($commands, function ($nameOrAlias) use ($commandList, $commands) {
|
||||
$commandName = $commandList[$nameOrAlias]->getName();
|
||||
if (\count($commands) > 1) {
|
||||
$commandList = $this->commandLoader ? array_merge(array_flip($this->commandLoader->getNames()), $this->commands) : $this->commands;
|
||||
$commands = array_unique(array_filter($commands, function ($nameOrAlias) use ($commandList, $commands, &$aliases) {
|
||||
$commandName = $commandList[$nameOrAlias] instanceof Command ? $commandList[$nameOrAlias]->getName() : $nameOrAlias;
|
||||
$aliases[$nameOrAlias] = $commandName;
|
||||
|
||||
return $commandName === $nameOrAlias || !in_array($commandName, $commands);
|
||||
});
|
||||
return $commandName === $nameOrAlias || !\in_array($commandName, $commands);
|
||||
}));
|
||||
}
|
||||
|
||||
$exact = in_array($name, $commands, true);
|
||||
if (count($commands) > 1 && !$exact) {
|
||||
$exact = \in_array($name, $commands, true) || isset($aliases[$name]);
|
||||
if (\count($commands) > 1 && !$exact) {
|
||||
$usableWidth = $this->terminal->getWidth() - 10;
|
||||
$abbrevs = array_values($commands);
|
||||
$maxLen = 0;
|
||||
|
|
@ -598,6 +638,9 @@ class Application
|
|||
$maxLen = max(Helper::strlen($abbrev), $maxLen);
|
||||
}
|
||||
$abbrevs = array_map(function ($cmd) use ($commandList, $usableWidth, $maxLen) {
|
||||
if (!$commandList[$cmd] instanceof Command) {
|
||||
return $cmd;
|
||||
}
|
||||
$abbrev = str_pad($cmd, $maxLen, ' ').' '.$commandList[$cmd]->getDescription();
|
||||
|
||||
return Helper::strlen($abbrev) > $usableWidth ? Helper::substr($abbrev, 0, $usableWidth - 3).'...' : $abbrev;
|
||||
|
|
@ -621,8 +664,21 @@ class Application
|
|||
*/
|
||||
public function all($namespace = null)
|
||||
{
|
||||
$this->init();
|
||||
|
||||
if (null === $namespace) {
|
||||
return $this->commands;
|
||||
if (!$this->commandLoader) {
|
||||
return $this->commands;
|
||||
}
|
||||
|
||||
$commands = $this->commands;
|
||||
foreach ($this->commandLoader->getNames() as $name) {
|
||||
if (!isset($commands[$name]) && $this->has($name)) {
|
||||
$commands[$name] = $this->get($name);
|
||||
}
|
||||
}
|
||||
|
||||
return $commands;
|
||||
}
|
||||
|
||||
$commands = array();
|
||||
|
|
@ -632,6 +688,14 @@ class Application
|
|||
}
|
||||
}
|
||||
|
||||
if ($this->commandLoader) {
|
||||
foreach ($this->commandLoader->getNames() as $name) {
|
||||
if (!isset($commands[$name]) && $namespace === $this->extractNamespace($name, substr_count($namespace, ':') + 1) && $this->has($name)) {
|
||||
$commands[$name] = $this->get($name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $commands;
|
||||
}
|
||||
|
||||
|
|
@ -646,7 +710,7 @@ class Application
|
|||
{
|
||||
$abbrevs = array();
|
||||
foreach ($names as $name) {
|
||||
for ($len = strlen($name); $len > 0; --$len) {
|
||||
for ($len = \strlen($name); $len > 0; --$len) {
|
||||
$abbrev = substr($name, 0, $len);
|
||||
$abbrevs[$abbrev][] = $name;
|
||||
}
|
||||
|
|
@ -657,30 +721,37 @@ class Application
|
|||
|
||||
/**
|
||||
* Renders a caught exception.
|
||||
*
|
||||
* @param \Exception $e An exception instance
|
||||
* @param OutputInterface $output An OutputInterface instance
|
||||
*/
|
||||
public function renderException(\Exception $e, OutputInterface $output)
|
||||
{
|
||||
$output->writeln('', OutputInterface::VERBOSITY_QUIET);
|
||||
|
||||
do {
|
||||
$title = sprintf(
|
||||
' [%s%s] ',
|
||||
get_class($e),
|
||||
$output->isVerbose() && 0 !== ($code = $e->getCode()) ? ' ('.$code.')' : ''
|
||||
);
|
||||
$this->doRenderException($e, $output);
|
||||
|
||||
$len = Helper::strlen($title);
|
||||
if (null !== $this->runningCommand) {
|
||||
$output->writeln(sprintf('<info>%s</info>', sprintf($this->runningCommand->getSynopsis(), $this->getName())), OutputInterface::VERBOSITY_QUIET);
|
||||
$output->writeln('', OutputInterface::VERBOSITY_QUIET);
|
||||
}
|
||||
}
|
||||
|
||||
protected function doRenderException(\Exception $e, OutputInterface $output)
|
||||
{
|
||||
do {
|
||||
$message = trim($e->getMessage());
|
||||
if ('' === $message || OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) {
|
||||
$title = sprintf(' [%s%s] ', \get_class($e), 0 !== ($code = $e->getCode()) ? ' ('.$code.')' : '');
|
||||
$len = Helper::strlen($title);
|
||||
} else {
|
||||
$len = 0;
|
||||
}
|
||||
|
||||
$width = $this->terminal->getWidth() ? $this->terminal->getWidth() - 1 : PHP_INT_MAX;
|
||||
// HHVM only accepts 32 bits integer in str_split, even when PHP_INT_MAX is a 64 bit integer: https://github.com/facebook/hhvm/issues/1327
|
||||
if (defined('HHVM_VERSION') && $width > 1 << 31) {
|
||||
if (\defined('HHVM_VERSION') && $width > 1 << 31) {
|
||||
$width = 1 << 31;
|
||||
}
|
||||
$lines = array();
|
||||
foreach (preg_split('/\r?\n/', $e->getMessage()) as $line) {
|
||||
foreach ('' !== $message ? preg_split('/\r?\n/', $message) : array() as $line) {
|
||||
foreach ($this->splitStringByWidth($line, $width - 4) as $line) {
|
||||
// pre-format lines to get the right string length
|
||||
$lineLength = Helper::strlen($line) + 4;
|
||||
|
|
@ -691,8 +762,13 @@ class Application
|
|||
}
|
||||
|
||||
$messages = array();
|
||||
if (!$e instanceof ExceptionInterface || OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) {
|
||||
$messages[] = sprintf('<comment>%s</comment>', OutputFormatter::escape(sprintf('In %s line %s:', basename($e->getFile()) ?: 'n/a', $e->getLine() ?: 'n/a')));
|
||||
}
|
||||
$messages[] = $emptyLine = sprintf('<error>%s</error>', str_repeat(' ', $len));
|
||||
$messages[] = sprintf('<error>%s%s</error>', $title, str_repeat(' ', max(0, $len - Helper::strlen($title))));
|
||||
if ('' === $message || OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) {
|
||||
$messages[] = sprintf('<error>%s%s</error>', $title, str_repeat(' ', max(0, $len - Helper::strlen($title))));
|
||||
}
|
||||
foreach ($lines as $line) {
|
||||
$messages[] = sprintf('<error> %s %s</error>', OutputFormatter::escape($line[0]), str_repeat(' ', $len - $line[1]));
|
||||
}
|
||||
|
|
@ -706,14 +782,8 @@ class Application
|
|||
|
||||
// exception related properties
|
||||
$trace = $e->getTrace();
|
||||
array_unshift($trace, array(
|
||||
'function' => '',
|
||||
'file' => $e->getFile() !== null ? $e->getFile() : 'n/a',
|
||||
'line' => $e->getLine() !== null ? $e->getLine() : 'n/a',
|
||||
'args' => array(),
|
||||
));
|
||||
|
||||
for ($i = 0, $count = count($trace); $i < $count; ++$i) {
|
||||
for ($i = 0, $count = \count($trace); $i < $count; ++$i) {
|
||||
$class = isset($trace[$i]['class']) ? $trace[$i]['class'] : '';
|
||||
$type = isset($trace[$i]['type']) ? $trace[$i]['type'] : '';
|
||||
$function = $trace[$i]['function'];
|
||||
|
|
@ -726,11 +796,6 @@ class Application
|
|||
$output->writeln('', OutputInterface::VERBOSITY_QUIET);
|
||||
}
|
||||
} while ($e = $e->getPrevious());
|
||||
|
||||
if (null !== $this->runningCommand) {
|
||||
$output->writeln(sprintf('<info>%s</info>', sprintf($this->runningCommand->getSynopsis(), $this->getName())), OutputInterface::VERBOSITY_QUIET);
|
||||
$output->writeln('', OutputInterface::VERBOSITY_QUIET);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -742,7 +807,7 @@ class Application
|
|||
*/
|
||||
protected function getTerminalWidth()
|
||||
{
|
||||
@trigger_error(sprintf('%s is deprecated as of 3.2 and will be removed in 4.0. Create a Terminal instance instead.', __METHOD__), E_USER_DEPRECATED);
|
||||
@trigger_error(sprintf('The "%s()" method is deprecated as of 3.2 and will be removed in 4.0. Create a Terminal instance instead.', __METHOD__), E_USER_DEPRECATED);
|
||||
|
||||
return $this->terminal->getWidth();
|
||||
}
|
||||
|
|
@ -756,7 +821,7 @@ class Application
|
|||
*/
|
||||
protected function getTerminalHeight()
|
||||
{
|
||||
@trigger_error(sprintf('%s is deprecated as of 3.2 and will be removed in 4.0. Create a Terminal instance instead.', __METHOD__), E_USER_DEPRECATED);
|
||||
@trigger_error(sprintf('The "%s()" method is deprecated as of 3.2 and will be removed in 4.0. Create a Terminal instance instead.', __METHOD__), E_USER_DEPRECATED);
|
||||
|
||||
return $this->terminal->getHeight();
|
||||
}
|
||||
|
|
@ -770,7 +835,7 @@ class Application
|
|||
*/
|
||||
public function getTerminalDimensions()
|
||||
{
|
||||
@trigger_error(sprintf('%s is deprecated as of 3.2 and will be removed in 4.0. Create a Terminal instance instead.', __METHOD__), E_USER_DEPRECATED);
|
||||
@trigger_error(sprintf('The "%s()" method is deprecated as of 3.2 and will be removed in 4.0. Create a Terminal instance instead.', __METHOD__), E_USER_DEPRECATED);
|
||||
|
||||
return array($this->terminal->getWidth(), $this->terminal->getHeight());
|
||||
}
|
||||
|
|
@ -789,7 +854,7 @@ class Application
|
|||
*/
|
||||
public function setTerminalDimensions($width, $height)
|
||||
{
|
||||
@trigger_error(sprintf('%s is deprecated as of 3.2 and will be removed in 4.0. Set the COLUMNS and LINES env vars instead.', __METHOD__), E_USER_DEPRECATED);
|
||||
@trigger_error(sprintf('The "%s()" method is deprecated as of 3.2 and will be removed in 4.0. Set the COLUMNS and LINES env vars instead.', __METHOD__), E_USER_DEPRECATED);
|
||||
|
||||
putenv('COLUMNS='.$width);
|
||||
putenv('LINES='.$height);
|
||||
|
|
@ -799,9 +864,6 @@ class Application
|
|||
|
||||
/**
|
||||
* Configures the input and output instances based on the user arguments and options.
|
||||
*
|
||||
* @param InputInterface $input An InputInterface instance
|
||||
* @param OutputInterface $output An OutputInterface instance
|
||||
*/
|
||||
protected function configureIO(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
|
|
@ -813,7 +875,7 @@ class Application
|
|||
|
||||
if (true === $input->hasParameterOption(array('--no-interaction', '-n'), true)) {
|
||||
$input->setInteractive(false);
|
||||
} elseif (function_exists('posix_isatty')) {
|
||||
} elseif (\function_exists('posix_isatty')) {
|
||||
$inputStream = null;
|
||||
|
||||
if ($input instanceof StreamableInputInterface) {
|
||||
|
|
@ -831,18 +893,37 @@ class Application
|
|||
}
|
||||
}
|
||||
|
||||
switch ($shellVerbosity = (int) getenv('SHELL_VERBOSITY')) {
|
||||
case -1: $output->setVerbosity(OutputInterface::VERBOSITY_QUIET); break;
|
||||
case 1: $output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE); break;
|
||||
case 2: $output->setVerbosity(OutputInterface::VERBOSITY_VERY_VERBOSE); break;
|
||||
case 3: $output->setVerbosity(OutputInterface::VERBOSITY_DEBUG); break;
|
||||
default: $shellVerbosity = 0; break;
|
||||
}
|
||||
|
||||
if (true === $input->hasParameterOption(array('--quiet', '-q'), true)) {
|
||||
$output->setVerbosity(OutputInterface::VERBOSITY_QUIET);
|
||||
$input->setInteractive(false);
|
||||
$shellVerbosity = -1;
|
||||
} else {
|
||||
if ($input->hasParameterOption('-vvv', true) || $input->hasParameterOption('--verbose=3', true) || $input->getParameterOption('--verbose', false, true) === 3) {
|
||||
if ($input->hasParameterOption('-vvv', true) || $input->hasParameterOption('--verbose=3', true) || 3 === $input->getParameterOption('--verbose', false, true)) {
|
||||
$output->setVerbosity(OutputInterface::VERBOSITY_DEBUG);
|
||||
} elseif ($input->hasParameterOption('-vv', true) || $input->hasParameterOption('--verbose=2', true) || $input->getParameterOption('--verbose', false, true) === 2) {
|
||||
$shellVerbosity = 3;
|
||||
} elseif ($input->hasParameterOption('-vv', true) || $input->hasParameterOption('--verbose=2', true) || 2 === $input->getParameterOption('--verbose', false, true)) {
|
||||
$output->setVerbosity(OutputInterface::VERBOSITY_VERY_VERBOSE);
|
||||
$shellVerbosity = 2;
|
||||
} elseif ($input->hasParameterOption('-v', true) || $input->hasParameterOption('--verbose=1', true) || $input->hasParameterOption('--verbose', true) || $input->getParameterOption('--verbose', false, true)) {
|
||||
$output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE);
|
||||
$shellVerbosity = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (-1 === $shellVerbosity) {
|
||||
$input->setInteractive(false);
|
||||
}
|
||||
|
||||
putenv('SHELL_VERBOSITY='.$shellVerbosity);
|
||||
$_ENV['SHELL_VERBOSITY'] = $shellVerbosity;
|
||||
$_SERVER['SHELL_VERBOSITY'] = $shellVerbosity;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -851,10 +932,6 @@ class Application
|
|||
* If an event dispatcher has been attached to the application,
|
||||
* events are also dispatched during the life-cycle of the command.
|
||||
*
|
||||
* @param Command $command A Command instance
|
||||
* @param InputInterface $input An Input instance
|
||||
* @param OutputInterface $output An Output instance
|
||||
*
|
||||
* @return int 0 if everything went fine, or an error code
|
||||
*/
|
||||
protected function doRunCommand(Command $command, InputInterface $input, OutputInterface $output)
|
||||
|
|
@ -923,8 +1000,6 @@ class Application
|
|||
/**
|
||||
* Gets the name of the command based on input.
|
||||
*
|
||||
* @param InputInterface $input The input interface
|
||||
*
|
||||
* @return string The command name
|
||||
*/
|
||||
protected function getCommandName(InputInterface $input)
|
||||
|
|
@ -1004,15 +1079,15 @@ class Application
|
|||
$parts = explode(':', $name);
|
||||
array_pop($parts);
|
||||
|
||||
return implode(':', null === $limit ? $parts : array_slice($parts, 0, $limit));
|
||||
return implode(':', null === $limit ? $parts : \array_slice($parts, 0, $limit));
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds alternative of $name among $collection,
|
||||
* if nothing is found in $collection, try in $abbrevs.
|
||||
*
|
||||
* @param string $name The string
|
||||
* @param array|\Traversable $collection The collection
|
||||
* @param string $name The string
|
||||
* @param iterable $collection The collection
|
||||
*
|
||||
* @return string[] A sorted array of similar string
|
||||
*/
|
||||
|
|
@ -1037,7 +1112,7 @@ class Application
|
|||
}
|
||||
|
||||
$lev = levenshtein($subname, $parts[$i]);
|
||||
if ($lev <= strlen($subname) / 3 || '' !== $subname && false !== strpos($parts[$i], $subname)) {
|
||||
if ($lev <= \strlen($subname) / 3 || '' !== $subname && false !== strpos($parts[$i], $subname)) {
|
||||
$alternatives[$collectionName] = $exists ? $alternatives[$collectionName] + $lev : $lev;
|
||||
} elseif ($exists) {
|
||||
$alternatives[$collectionName] += $threshold;
|
||||
|
|
@ -1047,7 +1122,7 @@ class Application
|
|||
|
||||
foreach ($collection as $item) {
|
||||
$lev = levenshtein($name, $item);
|
||||
if ($lev <= strlen($name) / 3 || false !== strpos($item, $name)) {
|
||||
if ($lev <= \strlen($name) / 3 || false !== strpos($item, $name)) {
|
||||
$alternatives[$item] = isset($alternatives[$item]) ? $alternatives[$item] - $lev : $lev;
|
||||
}
|
||||
}
|
||||
|
|
@ -1102,9 +1177,8 @@ class Application
|
|||
$lines[] = str_pad($line, $width);
|
||||
$line = $char;
|
||||
}
|
||||
if ('' !== $line) {
|
||||
$lines[] = count($lines) ? str_pad($line, $width) : $line;
|
||||
}
|
||||
|
||||
$lines[] = \count($lines) ? str_pad($line, $width) : $line;
|
||||
|
||||
mb_convert_variables($encoding, 'utf8', $lines);
|
||||
|
||||
|
|
@ -1125,7 +1199,7 @@ class Application
|
|||
$namespaces = array();
|
||||
|
||||
foreach ($parts as $part) {
|
||||
if (count($namespaces)) {
|
||||
if (\count($namespaces)) {
|
||||
$namespaces[] = end($namespaces).':'.$part;
|
||||
} else {
|
||||
$namespaces[] = $part;
|
||||
|
|
@ -1134,4 +1208,16 @@ class Application
|
|||
|
||||
return $namespaces;
|
||||
}
|
||||
|
||||
private function init()
|
||||
{
|
||||
if ($this->initialized) {
|
||||
return;
|
||||
}
|
||||
$this->initialized = true;
|
||||
|
||||
foreach ($this->getDefaultCommands() as $command) {
|
||||
$this->add($command);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
13
pfosten/vendor/symfony/console/CHANGELOG.md
vendored
Executable file → Normal file
13
pfosten/vendor/symfony/console/CHANGELOG.md
vendored
Executable file → Normal file
|
|
@ -1,6 +1,18 @@
|
|||
CHANGELOG
|
||||
=========
|
||||
|
||||
3.4.0
|
||||
-----
|
||||
|
||||
* added `SHELL_VERBOSITY` env var to control verbosity
|
||||
* added `CommandLoaderInterface`, `FactoryCommandLoader` and PSR-11
|
||||
`ContainerCommandLoader` for commands lazy-loading
|
||||
* added a case-insensitive command name matching fallback
|
||||
* added static `Command::$defaultName/getDefaultName()`, allowing for
|
||||
commands to be registered at compile time in the application command loader.
|
||||
Setting the `$defaultName` property avoids the need for filling the `command`
|
||||
attribute on the `console.command` tag when using `AddConsoleCommandPass`.
|
||||
|
||||
3.3.0
|
||||
-----
|
||||
|
||||
|
|
@ -12,6 +24,7 @@ CHANGELOG
|
|||
* deprecated console.exception event in favor of console.error
|
||||
* added ability to handle `CommandNotFoundException` through the
|
||||
`console.error` event
|
||||
* deprecated default validation in `SymfonyQuestionHelper::ask`
|
||||
|
||||
3.2.0
|
||||
------
|
||||
|
|
|
|||
77
pfosten/vendor/symfony/console/Command/Command.php
vendored
Executable file → Normal file
77
pfosten/vendor/symfony/console/Command/Command.php
vendored
Executable file → Normal file
|
|
@ -11,16 +11,16 @@
|
|||
|
||||
namespace Symfony\Component\Console\Command;
|
||||
|
||||
use Symfony\Component\Console\Exception\ExceptionInterface;
|
||||
use Symfony\Component\Console\Input\InputDefinition;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Application;
|
||||
use Symfony\Component\Console\Helper\HelperSet;
|
||||
use Symfony\Component\Console\Exception\ExceptionInterface;
|
||||
use Symfony\Component\Console\Exception\InvalidArgumentException;
|
||||
use Symfony\Component\Console\Exception\LogicException;
|
||||
use Symfony\Component\Console\Helper\HelperSet;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Input\InputDefinition;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
/**
|
||||
* Base class for all commands.
|
||||
|
|
@ -29,6 +29,11 @@ use Symfony\Component\Console\Exception\LogicException;
|
|||
*/
|
||||
class Command
|
||||
{
|
||||
/**
|
||||
* @var string|null The default command name
|
||||
*/
|
||||
protected static $defaultName;
|
||||
|
||||
private $application;
|
||||
private $name;
|
||||
private $processTitle;
|
||||
|
|
@ -46,8 +51,17 @@ class Command
|
|||
private $helperSet;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @return string|null The default command name or null when no default name is set
|
||||
*/
|
||||
public static function getDefaultName()
|
||||
{
|
||||
$class = \get_called_class();
|
||||
$r = new \ReflectionProperty($class, 'defaultName');
|
||||
|
||||
return $class === $r->class ? static::$defaultName : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string|null $name The name of the command; passing null means it must be set in configure()
|
||||
*
|
||||
* @throws LogicException When the command name is empty
|
||||
|
|
@ -56,15 +70,11 @@ class Command
|
|||
{
|
||||
$this->definition = new InputDefinition();
|
||||
|
||||
if (null !== $name) {
|
||||
if (null !== $name || null !== $name = static::getDefaultName()) {
|
||||
$this->setName($name);
|
||||
}
|
||||
|
||||
$this->configure();
|
||||
|
||||
if (!$this->name) {
|
||||
throw new LogicException(sprintf('The command defined in "%s" cannot have an empty name.', get_class($this)));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -77,11 +87,6 @@ class Command
|
|||
$this->ignoreValidationErrors = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the application instance for this command.
|
||||
*
|
||||
* @param Application $application An Application instance
|
||||
*/
|
||||
public function setApplication(Application $application = null)
|
||||
{
|
||||
$this->application = $application;
|
||||
|
|
@ -92,11 +97,6 @@ class Command
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the helper set.
|
||||
*
|
||||
* @param HelperSet $helperSet A HelperSet instance
|
||||
*/
|
||||
public function setHelperSet(HelperSet $helperSet)
|
||||
{
|
||||
$this->helperSet = $helperSet;
|
||||
|
|
@ -150,9 +150,6 @@ class Command
|
|||
* execute() method, you set the code to execute by passing
|
||||
* a Closure to the setCode() method.
|
||||
*
|
||||
* @param InputInterface $input An InputInterface instance
|
||||
* @param OutputInterface $output An OutputInterface instance
|
||||
*
|
||||
* @return null|int null or 0 if everything went fine, or an error code
|
||||
*
|
||||
* @throws LogicException When this abstract method is not implemented
|
||||
|
|
@ -170,9 +167,6 @@ class Command
|
|||
* This method is executed before the InputDefinition is validated.
|
||||
* This means that this is the only place where the command can
|
||||
* interactively ask for values of missing required arguments.
|
||||
*
|
||||
* @param InputInterface $input An InputInterface instance
|
||||
* @param OutputInterface $output An OutputInterface instance
|
||||
*/
|
||||
protected function interact(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
|
|
@ -183,9 +177,6 @@ class Command
|
|||
*
|
||||
* This is mainly useful when a lot of commands extends one main command
|
||||
* where some things need to be initialized based on the input arguments and options.
|
||||
*
|
||||
* @param InputInterface $input An InputInterface instance
|
||||
* @param OutputInterface $output An OutputInterface instance
|
||||
*/
|
||||
protected function initialize(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
|
|
@ -198,9 +189,6 @@ class Command
|
|||
* setCode() method or by overriding the execute() method
|
||||
* in a sub-class.
|
||||
*
|
||||
* @param InputInterface $input An InputInterface instance
|
||||
* @param OutputInterface $output An OutputInterface instance
|
||||
*
|
||||
* @return int The command exit code
|
||||
*
|
||||
* @throws \Exception When binding input fails. Bypass this by calling {@link ignoreValidationErrors()}.
|
||||
|
|
@ -229,16 +217,15 @@ class Command
|
|||
$this->initialize($input, $output);
|
||||
|
||||
if (null !== $this->processTitle) {
|
||||
if (function_exists('cli_set_process_title')) {
|
||||
if (false === @cli_set_process_title($this->processTitle)) {
|
||||
if (\function_exists('cli_set_process_title')) {
|
||||
if (!@cli_set_process_title($this->processTitle)) {
|
||||
if ('Darwin' === PHP_OS) {
|
||||
$output->writeln('<comment>Running "cli_get_process_title" as an unprivileged user is not supported on MacOS.</comment>');
|
||||
$output->writeln('<comment>Running "cli_set_process_title" as an unprivileged user is not supported on MacOS.</comment>', OutputInterface::VERBOSITY_VERY_VERBOSE);
|
||||
} else {
|
||||
$error = error_get_last();
|
||||
trigger_error($error['message'], E_USER_WARNING);
|
||||
cli_set_process_title($this->processTitle);
|
||||
}
|
||||
}
|
||||
} elseif (function_exists('setproctitle')) {
|
||||
} elseif (\function_exists('setproctitle')) {
|
||||
setproctitle($this->processTitle);
|
||||
} elseif (OutputInterface::VERBOSITY_VERY_VERBOSE === $output->getVerbosity()) {
|
||||
$output->writeln('<comment>Install the proctitle PECL to be able to change the process title.</comment>');
|
||||
|
|
@ -259,7 +246,7 @@ class Command
|
|||
$input->validate();
|
||||
|
||||
if ($this->code) {
|
||||
$statusCode = call_user_func($this->code, $input, $output);
|
||||
$statusCode = \call_user_func($this->code, $input, $output);
|
||||
} else {
|
||||
$statusCode = $this->execute($input, $output);
|
||||
}
|
||||
|
|
@ -475,7 +462,7 @@ class Command
|
|||
}
|
||||
|
||||
/**
|
||||
* @return bool Whether the command should be publicly shown or not.
|
||||
* @return bool whether the command should be publicly shown or not
|
||||
*/
|
||||
public function isHidden()
|
||||
{
|
||||
|
|
@ -563,7 +550,7 @@ class Command
|
|||
*/
|
||||
public function setAliases($aliases)
|
||||
{
|
||||
if (!is_array($aliases) && !$aliases instanceof \Traversable) {
|
||||
if (!\is_array($aliases) && !$aliases instanceof \Traversable) {
|
||||
throw new InvalidArgumentException('$aliases must be an array or an instance of \Traversable');
|
||||
}
|
||||
|
||||
|
|
|
|||
7
pfosten/vendor/symfony/console/Command/HelpCommand.php
vendored
Executable file → Normal file
7
pfosten/vendor/symfony/console/Command/HelpCommand.php
vendored
Executable file → Normal file
|
|
@ -13,8 +13,8 @@ namespace Symfony\Component\Console\Command;
|
|||
|
||||
use Symfony\Component\Console\Helper\DescriptorHelper;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
/**
|
||||
|
|
@ -56,11 +56,6 @@ EOF
|
|||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the command.
|
||||
*
|
||||
* @param Command $command The command to set
|
||||
*/
|
||||
public function setCommand(Command $command)
|
||||
{
|
||||
$this->command = $command;
|
||||
|
|
|
|||
6
pfosten/vendor/symfony/console/Command/ListCommand.php
vendored
Executable file → Normal file
6
pfosten/vendor/symfony/console/Command/ListCommand.php
vendored
Executable file → Normal file
|
|
@ -13,10 +13,10 @@ namespace Symfony\Component\Console\Command;
|
|||
|
||||
use Symfony\Component\Console\Helper\DescriptorHelper;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Input\InputDefinition;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
/**
|
||||
* ListCommand displays the list of all available commands for the application.
|
||||
|
|
|
|||
31
pfosten/vendor/symfony/console/Command/LockableTrait.php
vendored
Executable file → Normal file
31
pfosten/vendor/symfony/console/Command/LockableTrait.php
vendored
Executable file → Normal file
|
|
@ -13,7 +13,10 @@ namespace Symfony\Component\Console\Command;
|
|||
|
||||
use Symfony\Component\Console\Exception\LogicException;
|
||||
use Symfony\Component\Console\Exception\RuntimeException;
|
||||
use Symfony\Component\Filesystem\LockHandler;
|
||||
use Symfony\Component\Lock\Factory;
|
||||
use Symfony\Component\Lock\Lock;
|
||||
use Symfony\Component\Lock\Store\FlockStore;
|
||||
use Symfony\Component\Lock\Store\SemaphoreStore;
|
||||
|
||||
/**
|
||||
* Basic lock feature for commands.
|
||||
|
|
@ -22,7 +25,8 @@ use Symfony\Component\Filesystem\LockHandler;
|
|||
*/
|
||||
trait LockableTrait
|
||||
{
|
||||
private $lockHandler;
|
||||
/** @var Lock */
|
||||
private $lock;
|
||||
|
||||
/**
|
||||
* Locks a command.
|
||||
|
|
@ -31,18 +35,23 @@ trait LockableTrait
|
|||
*/
|
||||
private function lock($name = null, $blocking = false)
|
||||
{
|
||||
if (!class_exists(LockHandler::class)) {
|
||||
throw new RuntimeException('To enable the locking feature you must install the symfony/filesystem component.');
|
||||
if (!class_exists(SemaphoreStore::class)) {
|
||||
throw new RuntimeException('To enable the locking feature you must install the symfony/lock component.');
|
||||
}
|
||||
|
||||
if (null !== $this->lockHandler) {
|
||||
if (null !== $this->lock) {
|
||||
throw new LogicException('A lock is already in place.');
|
||||
}
|
||||
|
||||
$this->lockHandler = new LockHandler($name ?: $this->getName());
|
||||
if (SemaphoreStore::isSupported($blocking)) {
|
||||
$store = new SemaphoreStore();
|
||||
} else {
|
||||
$store = new FlockStore();
|
||||
}
|
||||
|
||||
if (!$this->lockHandler->lock($blocking)) {
|
||||
$this->lockHandler = null;
|
||||
$this->lock = (new Factory($store))->createLock($name ?: $this->getName());
|
||||
if (!$this->lock->acquire($blocking)) {
|
||||
$this->lock = null;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
@ -55,9 +64,9 @@ trait LockableTrait
|
|||
*/
|
||||
private function release()
|
||||
{
|
||||
if ($this->lockHandler) {
|
||||
$this->lockHandler->release();
|
||||
$this->lockHandler = null;
|
||||
if ($this->lock) {
|
||||
$this->lock->release();
|
||||
$this->lock = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
8
pfosten/vendor/symfony/console/ConsoleEvents.php
vendored
Executable file → Normal file
8
pfosten/vendor/symfony/console/ConsoleEvents.php
vendored
Executable file → Normal file
|
|
@ -24,8 +24,6 @@ final class ConsoleEvents
|
|||
* before they are handled to the command.
|
||||
*
|
||||
* @Event("Symfony\Component\Console\Event\ConsoleCommandEvent")
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const COMMAND = 'console.command';
|
||||
|
||||
|
|
@ -34,8 +32,6 @@ final class ConsoleEvents
|
|||
* executed by the console.
|
||||
*
|
||||
* @Event("Symfony\Component\Console\Event\ConsoleTerminateEvent")
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TERMINATE = 'console.terminate';
|
||||
|
||||
|
|
@ -48,8 +44,6 @@ final class ConsoleEvents
|
|||
*
|
||||
* @Event("Symfony\Component\Console\Event\ConsoleExceptionEvent")
|
||||
*
|
||||
* @var string
|
||||
*
|
||||
* @deprecated The console.exception event is deprecated since version 3.3 and will be removed in 4.0. Use the console.error event instead.
|
||||
*/
|
||||
const EXCEPTION = 'console.exception';
|
||||
|
|
@ -61,8 +55,6 @@ final class ConsoleEvents
|
|||
* to modify the thrown exception.
|
||||
*
|
||||
* @Event("Symfony\Component\Console\Event\ConsoleErrorEvent")
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const ERROR = 'console.error';
|
||||
}
|
||||
|
|
|
|||
76
pfosten/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php
vendored
Executable file → Normal file
76
pfosten/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php
vendored
Executable file → Normal file
|
|
@ -12,9 +12,12 @@
|
|||
namespace Symfony\Component\Console\DependencyInjection;
|
||||
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\CommandLoader\ContainerCommandLoader;
|
||||
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
|
||||
use Symfony\Component\DependencyInjection\Compiler\ServiceLocatorTagPass;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
|
||||
use Symfony\Component\DependencyInjection\TypedReference;
|
||||
|
||||
/**
|
||||
* Registers console commands.
|
||||
|
|
@ -23,34 +26,81 @@ use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
|
|||
*/
|
||||
class AddConsoleCommandPass implements CompilerPassInterface
|
||||
{
|
||||
private $commandLoaderServiceId;
|
||||
private $commandTag;
|
||||
|
||||
public function __construct($commandLoaderServiceId = 'console.command_loader', $commandTag = 'console.command')
|
||||
{
|
||||
$this->commandLoaderServiceId = $commandLoaderServiceId;
|
||||
$this->commandTag = $commandTag;
|
||||
}
|
||||
|
||||
public function process(ContainerBuilder $container)
|
||||
{
|
||||
$commandServices = $container->findTaggedServiceIds('console.command', true);
|
||||
$commandServices = $container->findTaggedServiceIds($this->commandTag, true);
|
||||
$lazyCommandMap = array();
|
||||
$lazyCommandRefs = array();
|
||||
$serviceIds = array();
|
||||
$lazyServiceIds = array();
|
||||
|
||||
foreach ($commandServices as $id => $tags) {
|
||||
$definition = $container->getDefinition($id);
|
||||
$class = $container->getParameterBag()->resolveValue($definition->getClass());
|
||||
|
||||
if (!$r = $container->getReflectionClass($class)) {
|
||||
throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id));
|
||||
}
|
||||
if (!$r->isSubclassOf(Command::class)) {
|
||||
throw new InvalidArgumentException(sprintf('The service "%s" tagged "console.command" must be a subclass of "%s".', $id, Command::class));
|
||||
$commandId = 'console.command.'.strtolower(str_replace('\\', '_', $class));
|
||||
|
||||
if (isset($tags[0]['command'])) {
|
||||
$commandName = $tags[0]['command'];
|
||||
} else {
|
||||
if (!$r = $container->getReflectionClass($class)) {
|
||||
throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id));
|
||||
}
|
||||
if (!$r->isSubclassOf(Command::class)) {
|
||||
throw new InvalidArgumentException(sprintf('The service "%s" tagged "%s" must be a subclass of "%s".', $id, $this->commandTag, Command::class));
|
||||
}
|
||||
$commandName = $class::getDefaultName();
|
||||
}
|
||||
|
||||
$commandId = 'console.command.'.strtolower(str_replace('\\', '_', $class));
|
||||
if ($container->hasAlias($commandId) || isset($serviceIds[$commandId])) {
|
||||
$commandId = $commandId.'_'.$id;
|
||||
}
|
||||
if (!$definition->isPublic()) {
|
||||
$container->setAlias($commandId, $id);
|
||||
$id = $commandId;
|
||||
if (null === $commandName) {
|
||||
if (isset($serviceIds[$commandId]) || $container->hasAlias($commandId)) {
|
||||
$commandId = $commandId.'_'.$id;
|
||||
}
|
||||
if (!$definition->isPublic() || $definition->isPrivate()) {
|
||||
$container->setAlias($commandId, $id)->setPublic(true);
|
||||
$id = $commandId;
|
||||
}
|
||||
$serviceIds[$commandId] = $id;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
$serviceIds[$commandId] = $id;
|
||||
$lazyServiceIds[$id] = true;
|
||||
unset($tags[0]);
|
||||
$lazyCommandMap[$commandName] = $id;
|
||||
$lazyCommandRefs[$id] = new TypedReference($id, $class);
|
||||
$aliases = array();
|
||||
|
||||
foreach ($tags as $tag) {
|
||||
if (isset($tag['command'])) {
|
||||
$aliases[] = $tag['command'];
|
||||
$lazyCommandMap[$tag['command']] = $id;
|
||||
}
|
||||
}
|
||||
|
||||
$definition->addMethodCall('setName', array($commandName));
|
||||
|
||||
if ($aliases) {
|
||||
$definition->addMethodCall('setAliases', array($aliases));
|
||||
}
|
||||
}
|
||||
|
||||
$container
|
||||
->register($this->commandLoaderServiceId, ContainerCommandLoader::class)
|
||||
->setPublic(true)
|
||||
->setArguments(array(ServiceLocatorTagPass::register($container, $lazyCommandRefs), $lazyCommandMap));
|
||||
|
||||
$container->setParameter('console.command.ids', $serviceIds);
|
||||
$container->setParameter('console.lazy_command.ids', $lazyServiceIds);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
17
pfosten/vendor/symfony/console/Descriptor/ApplicationDescription.php
vendored
Executable file → Normal file
17
pfosten/vendor/symfony/console/Descriptor/ApplicationDescription.php
vendored
Executable file → Normal file
|
|
@ -24,15 +24,9 @@ class ApplicationDescription
|
|||
{
|
||||
const GLOBAL_NAMESPACE = '_global';
|
||||
|
||||
/**
|
||||
* @var Application
|
||||
*/
|
||||
private $application;
|
||||
|
||||
/**
|
||||
* @var null|string
|
||||
*/
|
||||
private $namespace;
|
||||
private $showHidden;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
|
|
@ -50,13 +44,6 @@ class ApplicationDescription
|
|||
private $aliases;
|
||||
|
||||
/**
|
||||
* @var bool
|
||||
*/
|
||||
private $showHidden;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param Application $application
|
||||
* @param string|null $namespace
|
||||
* @param bool $showHidden
|
||||
|
|
@ -137,8 +124,6 @@ class ApplicationDescription
|
|||
}
|
||||
|
||||
/**
|
||||
* @param array $commands
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private function sortCommands(array $commands)
|
||||
|
|
|
|||
19
pfosten/vendor/symfony/console/Descriptor/Descriptor.php
vendored
Executable file → Normal file
19
pfosten/vendor/symfony/console/Descriptor/Descriptor.php
vendored
Executable file → Normal file
|
|
@ -13,11 +13,11 @@ namespace Symfony\Component\Console\Descriptor;
|
|||
|
||||
use Symfony\Component\Console\Application;
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Exception\InvalidArgumentException;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Input\InputDefinition;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Exception\InvalidArgumentException;
|
||||
|
||||
/**
|
||||
* @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
|
||||
|
|
@ -55,7 +55,7 @@ abstract class Descriptor implements DescriptorInterface
|
|||
$this->describeApplication($object, $options);
|
||||
break;
|
||||
default:
|
||||
throw new InvalidArgumentException(sprintf('Object of type "%s" is not describable.', get_class($object)));
|
||||
throw new InvalidArgumentException(sprintf('Object of type "%s" is not describable.', \get_class($object)));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -73,9 +73,6 @@ abstract class Descriptor implements DescriptorInterface
|
|||
/**
|
||||
* Describes an InputArgument instance.
|
||||
*
|
||||
* @param InputArgument $argument
|
||||
* @param array $options
|
||||
*
|
||||
* @return string|mixed
|
||||
*/
|
||||
abstract protected function describeInputArgument(InputArgument $argument, array $options = array());
|
||||
|
|
@ -83,9 +80,6 @@ abstract class Descriptor implements DescriptorInterface
|
|||
/**
|
||||
* Describes an InputOption instance.
|
||||
*
|
||||
* @param InputOption $option
|
||||
* @param array $options
|
||||
*
|
||||
* @return string|mixed
|
||||
*/
|
||||
abstract protected function describeInputOption(InputOption $option, array $options = array());
|
||||
|
|
@ -93,9 +87,6 @@ abstract class Descriptor implements DescriptorInterface
|
|||
/**
|
||||
* Describes an InputDefinition instance.
|
||||
*
|
||||
* @param InputDefinition $definition
|
||||
* @param array $options
|
||||
*
|
||||
* @return string|mixed
|
||||
*/
|
||||
abstract protected function describeInputDefinition(InputDefinition $definition, array $options = array());
|
||||
|
|
@ -103,9 +94,6 @@ abstract class Descriptor implements DescriptorInterface
|
|||
/**
|
||||
* Describes a Command instance.
|
||||
*
|
||||
* @param Command $command
|
||||
* @param array $options
|
||||
*
|
||||
* @return string|mixed
|
||||
*/
|
||||
abstract protected function describeCommand(Command $command, array $options = array());
|
||||
|
|
@ -113,9 +101,6 @@ abstract class Descriptor implements DescriptorInterface
|
|||
/**
|
||||
* Describes an Application instance.
|
||||
*
|
||||
* @param Application $application
|
||||
* @param array $options
|
||||
*
|
||||
* @return string|mixed
|
||||
*/
|
||||
abstract protected function describeApplication(Application $application, array $options = array());
|
||||
|
|
|
|||
2
pfosten/vendor/symfony/console/Descriptor/DescriptorInterface.php
vendored
Executable file → Normal file
2
pfosten/vendor/symfony/console/Descriptor/DescriptorInterface.php
vendored
Executable file → Normal file
|
|
@ -21,7 +21,7 @@ use Symfony\Component\Console\Output\OutputInterface;
|
|||
interface DescriptorInterface
|
||||
{
|
||||
/**
|
||||
* Describes an InputArgument instance.
|
||||
* Describes an object if supported.
|
||||
*
|
||||
* @param OutputInterface $output
|
||||
* @param object $object
|
||||
|
|
|
|||
17
pfosten/vendor/symfony/console/Descriptor/JsonDescriptor.php
vendored
Executable file → Normal file
17
pfosten/vendor/symfony/console/Descriptor/JsonDescriptor.php
vendored
Executable file → Normal file
|
|
@ -93,9 +93,6 @@ class JsonDescriptor extends Descriptor
|
|||
/**
|
||||
* Writes data as json.
|
||||
*
|
||||
* @param array $data
|
||||
* @param array $options
|
||||
*
|
||||
* @return array|string
|
||||
*/
|
||||
private function writeData(array $data, array $options)
|
||||
|
|
@ -104,8 +101,6 @@ class JsonDescriptor extends Descriptor
|
|||
}
|
||||
|
||||
/**
|
||||
* @param InputArgument $argument
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private function getInputArgumentData(InputArgument $argument)
|
||||
|
|
@ -115,31 +110,27 @@ class JsonDescriptor extends Descriptor
|
|||
'is_required' => $argument->isRequired(),
|
||||
'is_array' => $argument->isArray(),
|
||||
'description' => preg_replace('/\s*[\r\n]\s*/', ' ', $argument->getDescription()),
|
||||
'default' => $argument->getDefault(),
|
||||
'default' => INF === $argument->getDefault() ? 'INF' : $argument->getDefault(),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param InputOption $option
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private function getInputOptionData(InputOption $option)
|
||||
{
|
||||
return array(
|
||||
'name' => '--'.$option->getName(),
|
||||
'shortcut' => $option->getShortcut() ? '-'.implode('|-', explode('|', $option->getShortcut())) : '',
|
||||
'shortcut' => $option->getShortcut() ? '-'.str_replace('|', '|-', $option->getShortcut()) : '',
|
||||
'accept_value' => $option->acceptValue(),
|
||||
'is_value_required' => $option->isValueRequired(),
|
||||
'is_multiple' => $option->isArray(),
|
||||
'description' => preg_replace('/\s*[\r\n]\s*/', ' ', $option->getDescription()),
|
||||
'default' => $option->getDefault(),
|
||||
'default' => INF === $option->getDefault() ? 'INF' : $option->getDefault(),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param InputDefinition $definition
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private function getInputDefinitionData(InputDefinition $definition)
|
||||
|
|
@ -158,8 +149,6 @@ class JsonDescriptor extends Descriptor
|
|||
}
|
||||
|
||||
/**
|
||||
* @param Command $command
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private function getCommandData(Command $command)
|
||||
|
|
|
|||
6
pfosten/vendor/symfony/console/Descriptor/MarkdownDescriptor.php
vendored
Executable file → Normal file
6
pfosten/vendor/symfony/console/Descriptor/MarkdownDescriptor.php
vendored
Executable file → Normal file
|
|
@ -70,7 +70,7 @@ class MarkdownDescriptor extends Descriptor
|
|||
{
|
||||
$name = '--'.$option->getName();
|
||||
if ($option->getShortcut()) {
|
||||
$name .= '|-'.implode('|-', explode('|', $option->getShortcut())).'';
|
||||
$name .= '|-'.str_replace('|', '|-', $option->getShortcut()).'';
|
||||
}
|
||||
|
||||
$this->write(
|
||||
|
|
@ -88,7 +88,7 @@ class MarkdownDescriptor extends Descriptor
|
|||
*/
|
||||
protected function describeInputDefinition(InputDefinition $definition, array $options = array())
|
||||
{
|
||||
if ($showArguments = count($definition->getArguments()) > 0) {
|
||||
if ($showArguments = \count($definition->getArguments()) > 0) {
|
||||
$this->write('### Arguments');
|
||||
foreach ($definition->getArguments() as $argument) {
|
||||
$this->write("\n\n");
|
||||
|
|
@ -96,7 +96,7 @@ class MarkdownDescriptor extends Descriptor
|
|||
}
|
||||
}
|
||||
|
||||
if (count($definition->getOptions()) > 0) {
|
||||
if (\count($definition->getOptions()) > 0) {
|
||||
if ($showArguments) {
|
||||
$this->write("\n\n");
|
||||
}
|
||||
|
|
|
|||
28
pfosten/vendor/symfony/console/Descriptor/TextDescriptor.php
vendored
Executable file → Normal file
28
pfosten/vendor/symfony/console/Descriptor/TextDescriptor.php
vendored
Executable file → Normal file
|
|
@ -33,14 +33,14 @@ class TextDescriptor extends Descriptor
|
|||
*/
|
||||
protected function describeInputArgument(InputArgument $argument, array $options = array())
|
||||
{
|
||||
if (null !== $argument->getDefault() && (!is_array($argument->getDefault()) || count($argument->getDefault()))) {
|
||||
if (null !== $argument->getDefault() && (!\is_array($argument->getDefault()) || \count($argument->getDefault()))) {
|
||||
$default = sprintf('<comment> [default: %s]</comment>', $this->formatDefaultValue($argument->getDefault()));
|
||||
} else {
|
||||
$default = '';
|
||||
}
|
||||
|
||||
$totalWidth = isset($options['total_width']) ? $options['total_width'] : Helper::strlen($argument->getName());
|
||||
$spacingWidth = $totalWidth - strlen($argument->getName());
|
||||
$spacingWidth = $totalWidth - \strlen($argument->getName());
|
||||
|
||||
$this->writeText(sprintf(' <info>%s</info> %s%s%s',
|
||||
$argument->getName(),
|
||||
|
|
@ -56,7 +56,7 @@ class TextDescriptor extends Descriptor
|
|||
*/
|
||||
protected function describeInputOption(InputOption $option, array $options = array())
|
||||
{
|
||||
if ($option->acceptValue() && null !== $option->getDefault() && (!is_array($option->getDefault()) || count($option->getDefault()))) {
|
||||
if ($option->acceptValue() && null !== $option->getDefault() && (!\is_array($option->getDefault()) || \count($option->getDefault()))) {
|
||||
$default = sprintf('<comment> [default: %s]</comment>', $this->formatDefaultValue($option->getDefault()));
|
||||
} else {
|
||||
$default = '';
|
||||
|
|
@ -117,7 +117,7 @@ class TextDescriptor extends Descriptor
|
|||
|
||||
$this->writeText('<comment>Options:</comment>', $options);
|
||||
foreach ($definition->getOptions() as $option) {
|
||||
if (strlen($option->getShortcut()) > 1) {
|
||||
if (\strlen($option->getShortcut()) > 1) {
|
||||
$laterOptions[] = $option;
|
||||
continue;
|
||||
}
|
||||
|
|
@ -143,7 +143,7 @@ class TextDescriptor extends Descriptor
|
|||
$this->writeText('<comment>Usage:</comment>', $options);
|
||||
foreach (array_merge(array($command->getSynopsis(true)), $command->getAliases(), $command->getUsages()) as $usage) {
|
||||
$this->writeText("\n");
|
||||
$this->writeText(' '.$usage, $options);
|
||||
$this->writeText(' '.OutputFormatter::escape($usage), $options);
|
||||
}
|
||||
$this->writeText("\n");
|
||||
|
||||
|
|
@ -202,7 +202,7 @@ class TextDescriptor extends Descriptor
|
|||
}
|
||||
|
||||
// calculate max. width based on available commands per namespace
|
||||
$width = $this->getColumnWidth(call_user_func_array('array_merge', array_map(function ($namespace) use ($commands) {
|
||||
$width = $this->getColumnWidth(\call_user_func_array('array_merge', array_map(function ($namespace) use ($commands) {
|
||||
return array_intersect($namespace['commands'], array_keys($commands));
|
||||
}, $namespaces)));
|
||||
|
||||
|
|
@ -253,11 +253,9 @@ class TextDescriptor extends Descriptor
|
|||
/**
|
||||
* Formats command aliases to show them in the command description.
|
||||
*
|
||||
* @param Command $command
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private function getCommandAliasesText($command)
|
||||
private function getCommandAliasesText(Command $command)
|
||||
{
|
||||
$text = '';
|
||||
$aliases = $command->getAliases();
|
||||
|
|
@ -278,11 +276,15 @@ class TextDescriptor extends Descriptor
|
|||
*/
|
||||
private function formatDefaultValue($default)
|
||||
{
|
||||
if (is_string($default)) {
|
||||
if (INF === $default) {
|
||||
return 'INF';
|
||||
}
|
||||
|
||||
if (\is_string($default)) {
|
||||
$default = OutputFormatter::escape($default);
|
||||
} elseif (is_array($default)) {
|
||||
} elseif (\is_array($default)) {
|
||||
foreach ($default as $key => $value) {
|
||||
if (is_string($value)) {
|
||||
if (\is_string($value)) {
|
||||
$default[$key] = OutputFormatter::escape($value);
|
||||
}
|
||||
}
|
||||
|
|
@ -319,7 +321,7 @@ class TextDescriptor extends Descriptor
|
|||
*
|
||||
* @return int
|
||||
*/
|
||||
private function calculateTotalWidthForOptions($options)
|
||||
private function calculateTotalWidthForOptions(array $options)
|
||||
{
|
||||
$totalWidth = 0;
|
||||
foreach ($options as $option) {
|
||||
|
|
|
|||
23
pfosten/vendor/symfony/console/Descriptor/XmlDescriptor.php
vendored
Executable file → Normal file
23
pfosten/vendor/symfony/console/Descriptor/XmlDescriptor.php
vendored
Executable file → Normal file
|
|
@ -27,8 +27,6 @@ use Symfony\Component\Console\Input\InputOption;
|
|||
class XmlDescriptor extends Descriptor
|
||||
{
|
||||
/**
|
||||
* @param InputDefinition $definition
|
||||
*
|
||||
* @return \DOMDocument
|
||||
*/
|
||||
public function getInputDefinitionDocument(InputDefinition $definition)
|
||||
|
|
@ -50,8 +48,6 @@ class XmlDescriptor extends Descriptor
|
|||
}
|
||||
|
||||
/**
|
||||
* @param Command $command
|
||||
*
|
||||
* @return \DOMDocument
|
||||
*/
|
||||
public function getCommandDocument(Command $command)
|
||||
|
|
@ -95,9 +91,9 @@ class XmlDescriptor extends Descriptor
|
|||
$dom = new \DOMDocument('1.0', 'UTF-8');
|
||||
$dom->appendChild($rootXml = $dom->createElement('symfony'));
|
||||
|
||||
if ($application->getName() !== 'UNKNOWN') {
|
||||
if ('UNKNOWN' !== $application->getName()) {
|
||||
$rootXml->setAttribute('name', $application->getName());
|
||||
if ($application->getVersion() !== 'UNKNOWN') {
|
||||
if ('UNKNOWN' !== $application->getVersion()) {
|
||||
$rootXml->setAttribute('version', $application->getVersion());
|
||||
}
|
||||
}
|
||||
|
|
@ -173,9 +169,6 @@ class XmlDescriptor extends Descriptor
|
|||
|
||||
/**
|
||||
* Appends document children to parent node.
|
||||
*
|
||||
* @param \DOMNode $parentNode
|
||||
* @param \DOMNode $importedParent
|
||||
*/
|
||||
private function appendDocument(\DOMNode $parentNode, \DOMNode $importedParent)
|
||||
{
|
||||
|
|
@ -187,8 +180,6 @@ class XmlDescriptor extends Descriptor
|
|||
/**
|
||||
* Writes DOM document.
|
||||
*
|
||||
* @param \DOMDocument $dom
|
||||
*
|
||||
* @return \DOMDocument|string
|
||||
*/
|
||||
private function writeDocument(\DOMDocument $dom)
|
||||
|
|
@ -198,8 +189,6 @@ class XmlDescriptor extends Descriptor
|
|||
}
|
||||
|
||||
/**
|
||||
* @param InputArgument $argument
|
||||
*
|
||||
* @return \DOMDocument
|
||||
*/
|
||||
private function getInputArgumentDocument(InputArgument $argument)
|
||||
|
|
@ -214,7 +203,7 @@ class XmlDescriptor extends Descriptor
|
|||
$descriptionXML->appendChild($dom->createTextNode($argument->getDescription()));
|
||||
|
||||
$objectXML->appendChild($defaultsXML = $dom->createElement('defaults'));
|
||||
$defaults = is_array($argument->getDefault()) ? $argument->getDefault() : (is_bool($argument->getDefault()) ? array(var_export($argument->getDefault(), true)) : ($argument->getDefault() ? array($argument->getDefault()) : array()));
|
||||
$defaults = \is_array($argument->getDefault()) ? $argument->getDefault() : (\is_bool($argument->getDefault()) ? array(var_export($argument->getDefault(), true)) : ($argument->getDefault() ? array($argument->getDefault()) : array()));
|
||||
foreach ($defaults as $default) {
|
||||
$defaultsXML->appendChild($defaultXML = $dom->createElement('default'));
|
||||
$defaultXML->appendChild($dom->createTextNode($default));
|
||||
|
|
@ -224,8 +213,6 @@ class XmlDescriptor extends Descriptor
|
|||
}
|
||||
|
||||
/**
|
||||
* @param InputOption $option
|
||||
*
|
||||
* @return \DOMDocument
|
||||
*/
|
||||
private function getInputOptionDocument(InputOption $option)
|
||||
|
|
@ -237,7 +224,7 @@ class XmlDescriptor extends Descriptor
|
|||
$pos = strpos($option->getShortcut(), '|');
|
||||
if (false !== $pos) {
|
||||
$objectXML->setAttribute('shortcut', '-'.substr($option->getShortcut(), 0, $pos));
|
||||
$objectXML->setAttribute('shortcuts', '-'.implode('|-', explode('|', $option->getShortcut())));
|
||||
$objectXML->setAttribute('shortcuts', '-'.str_replace('|', '|-', $option->getShortcut()));
|
||||
} else {
|
||||
$objectXML->setAttribute('shortcut', $option->getShortcut() ? '-'.$option->getShortcut() : '');
|
||||
}
|
||||
|
|
@ -248,7 +235,7 @@ class XmlDescriptor extends Descriptor
|
|||
$descriptionXML->appendChild($dom->createTextNode($option->getDescription()));
|
||||
|
||||
if ($option->acceptValue()) {
|
||||
$defaults = is_array($option->getDefault()) ? $option->getDefault() : (is_bool($option->getDefault()) ? array(var_export($option->getDefault(), true)) : ($option->getDefault() ? array($option->getDefault()) : array()));
|
||||
$defaults = \is_array($option->getDefault()) ? $option->getDefault() : (\is_bool($option->getDefault()) ? array(var_export($option->getDefault(), true)) : ($option->getDefault() ? array($option->getDefault()) : array()));
|
||||
$objectXML->appendChild($defaultsXML = $dom->createElement('defaults'));
|
||||
|
||||
if (!empty($defaults)) {
|
||||
|
|
|
|||
2
pfosten/vendor/symfony/console/Event/ConsoleCommandEvent.php
vendored
Executable file → Normal file
2
pfosten/vendor/symfony/console/Event/ConsoleCommandEvent.php
vendored
Executable file → Normal file
|
|
@ -25,8 +25,6 @@ class ConsoleCommandEvent extends ConsoleEvent
|
|||
|
||||
/**
|
||||
* Indicates if the command should be run or skipped.
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
private $commandShouldRun = true;
|
||||
|
||||
|
|
|
|||
4
pfosten/vendor/symfony/console/Event/ConsoleErrorEvent.php
vendored
Executable file → Normal file
4
pfosten/vendor/symfony/console/Event/ConsoleErrorEvent.php
vendored
Executable file → Normal file
|
|
@ -51,7 +51,7 @@ final class ConsoleErrorEvent extends ConsoleEvent
|
|||
public function setError($error)
|
||||
{
|
||||
if (!$error instanceof \Throwable && !$error instanceof \Exception) {
|
||||
throw new InvalidArgumentException(sprintf('The error passed to ConsoleErrorEvent must be an instance of \Throwable or \Exception, "%s" was passed instead.', is_object($error) ? get_class($error) : gettype($error)));
|
||||
throw new InvalidArgumentException(sprintf('The error passed to ConsoleErrorEvent must be an instance of \Throwable or \Exception, "%s" was passed instead.', \is_object($error) ? \get_class($error) : \gettype($error)));
|
||||
}
|
||||
|
||||
$this->error = $error;
|
||||
|
|
@ -78,6 +78,6 @@ final class ConsoleErrorEvent extends ConsoleEvent
|
|||
*/
|
||||
public function getExitCode()
|
||||
{
|
||||
return null !== $this->exitCode ? $this->exitCode : ($this->error->getCode() ?: 1);
|
||||
return null !== $this->exitCode ? $this->exitCode : (\is_int($this->error->getCode()) && 0 !== $this->error->getCode() ? $this->error->getCode() : 1);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
0
pfosten/vendor/symfony/console/Event/ConsoleEvent.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Event/ConsoleEvent.php
vendored
Executable file → Normal file
2
pfosten/vendor/symfony/console/Event/ConsoleExceptionEvent.php
vendored
Executable file → Normal file
2
pfosten/vendor/symfony/console/Event/ConsoleExceptionEvent.php
vendored
Executable file → Normal file
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
namespace Symfony\Component\Console\Event;
|
||||
|
||||
@trigger_error(sprintf('The "%s" class is deprecated since version 3.3 and will be removed in 4.0. Use the ConsoleErrorEvent instead.', ConsoleExceptionEvent::class), E_USER_DEPRECATED);
|
||||
@trigger_error(sprintf('The "%s" class is deprecated since Symfony 3.3 and will be removed in 4.0. Use the ConsoleErrorEvent instead.', ConsoleExceptionEvent::class), E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
|
|
|
|||
0
pfosten/vendor/symfony/console/Event/ConsoleTerminateEvent.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Event/ConsoleTerminateEvent.php
vendored
Executable file → Normal file
8
pfosten/vendor/symfony/console/EventListener/ErrorListener.php
vendored
Executable file → Normal file
8
pfosten/vendor/symfony/console/EventListener/ErrorListener.php
vendored
Executable file → Normal file
|
|
@ -40,10 +40,10 @@ class ErrorListener implements EventSubscriberInterface
|
|||
$error = $event->getError();
|
||||
|
||||
if (!$inputString = $this->getInputString($event)) {
|
||||
return $this->logger->error('An error occurred while using the console. Message: "{message}"', array('error' => $error, 'message' => $error->getMessage()));
|
||||
return $this->logger->error('An error occurred while using the console. Message: "{message}"', array('exception' => $error, 'message' => $error->getMessage()));
|
||||
}
|
||||
|
||||
$this->logger->error('Error thrown while running command "{command}". Message: "{message}"', array('error' => $error, 'command' => $inputString, 'message' => $error->getMessage()));
|
||||
$this->logger->error('Error thrown while running command "{command}". Message: "{message}"', array('exception' => $error, 'command' => $inputString, 'message' => $error->getMessage()));
|
||||
}
|
||||
|
||||
public function onConsoleTerminate(ConsoleTerminateEvent $event)
|
||||
|
|
@ -59,10 +59,10 @@ class ErrorListener implements EventSubscriberInterface
|
|||
}
|
||||
|
||||
if (!$inputString = $this->getInputString($event)) {
|
||||
return $this->logger->error('The console exited with code "{code}"', array('code' => $exitCode));
|
||||
return $this->logger->debug('The console exited with code "{code}"', array('code' => $exitCode));
|
||||
}
|
||||
|
||||
$this->logger->error('Command "{command}" exited with code "{code}"', array('command' => $inputString, 'code' => $exitCode));
|
||||
$this->logger->debug('Command "{command}" exited with code "{code}"', array('command' => $inputString, 'code' => $exitCode));
|
||||
}
|
||||
|
||||
public static function getSubscribedEvents()
|
||||
|
|
|
|||
8
pfosten/vendor/symfony/console/Exception/CommandNotFoundException.php
vendored
Executable file → Normal file
8
pfosten/vendor/symfony/console/Exception/CommandNotFoundException.php
vendored
Executable file → Normal file
|
|
@ -21,10 +21,10 @@ class CommandNotFoundException extends \InvalidArgumentException implements Exce
|
|||
private $alternatives;
|
||||
|
||||
/**
|
||||
* @param string $message Exception message to throw
|
||||
* @param array $alternatives List of similar defined names
|
||||
* @param int $code Exception code
|
||||
* @param Exception $previous previous exception used for the exception chaining
|
||||
* @param string $message Exception message to throw
|
||||
* @param array $alternatives List of similar defined names
|
||||
* @param int $code Exception code
|
||||
* @param \Exception $previous Previous exception used for the exception chaining
|
||||
*/
|
||||
public function __construct($message, array $alternatives = array(), $code = 0, \Exception $previous = null)
|
||||
{
|
||||
|
|
|
|||
0
pfosten/vendor/symfony/console/Exception/ExceptionInterface.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Exception/ExceptionInterface.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Exception/InvalidArgumentException.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Exception/InvalidArgumentException.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Exception/InvalidOptionException.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Exception/InvalidOptionException.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Exception/LogicException.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Exception/LogicException.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Exception/RuntimeException.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Exception/RuntimeException.php
vendored
Executable file → Normal file
15
pfosten/vendor/symfony/console/Formatter/OutputFormatter.php
vendored
Executable file → Normal file
15
pfosten/vendor/symfony/console/Formatter/OutputFormatter.php
vendored
Executable file → Normal file
|
|
@ -50,9 +50,10 @@ class OutputFormatter implements OutputFormatterInterface
|
|||
public static function escapeTrailingBackslash($text)
|
||||
{
|
||||
if ('\\' === substr($text, -1)) {
|
||||
$len = strlen($text);
|
||||
$len = \strlen($text);
|
||||
$text = rtrim($text, '\\');
|
||||
$text .= str_repeat('<<', $len - strlen($text));
|
||||
$text = str_replace("\0", '', $text);
|
||||
$text .= str_repeat("\0", $len - \strlen($text));
|
||||
}
|
||||
|
||||
return $text;
|
||||
|
|
@ -144,7 +145,7 @@ class OutputFormatter implements OutputFormatterInterface
|
|||
|
||||
// add the text up to the next tag
|
||||
$output .= $this->applyCurrentStyle(substr($message, $offset, $pos - $offset));
|
||||
$offset = $pos + strlen($text);
|
||||
$offset = $pos + \strlen($text);
|
||||
|
||||
// opening tag?
|
||||
if ($open = '/' != $text[1]) {
|
||||
|
|
@ -167,8 +168,8 @@ class OutputFormatter implements OutputFormatterInterface
|
|||
|
||||
$output .= $this->applyCurrentStyle(substr($message, $offset));
|
||||
|
||||
if (false !== strpos($output, '<<')) {
|
||||
return strtr($output, array('\\<' => '<', '<<' => '\\'));
|
||||
if (false !== strpos($output, "\0")) {
|
||||
return strtr($output, array("\0" => '\\', '\\<' => '<'));
|
||||
}
|
||||
|
||||
return str_replace('\\<', '<', $output);
|
||||
|
|
@ -214,7 +215,7 @@ class OutputFormatter implements OutputFormatterInterface
|
|||
try {
|
||||
$style->setOption($option);
|
||||
} catch (\InvalidArgumentException $e) {
|
||||
@trigger_error(sprintf('Unknown style options are deprecated since version 3.2 and will be removed in 4.0. Exception "%s".', $e->getMessage()), E_USER_DEPRECATED);
|
||||
@trigger_error(sprintf('Unknown style options are deprecated since Symfony 3.2 and will be removed in 4.0. Exception "%s".', $e->getMessage()), E_USER_DEPRECATED);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
@ -236,6 +237,6 @@ class OutputFormatter implements OutputFormatterInterface
|
|||
*/
|
||||
private function applyCurrentStyle($text)
|
||||
{
|
||||
return $this->isDecorated() && strlen($text) > 0 ? $this->styleStack->getCurrent()->apply($text) : $text;
|
||||
return $this->isDecorated() && \strlen($text) > 0 ? $this->styleStack->getCurrent()->apply($text) : $text;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
0
pfosten/vendor/symfony/console/Formatter/OutputFormatterInterface.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Formatter/OutputFormatterInterface.php
vendored
Executable file → Normal file
12
pfosten/vendor/symfony/console/Formatter/OutputFormatterStyle.php
vendored
Executable file → Normal file
12
pfosten/vendor/symfony/console/Formatter/OutputFormatterStyle.php
vendored
Executable file → Normal file
|
|
@ -69,7 +69,7 @@ class OutputFormatterStyle implements OutputFormatterStyleInterface
|
|||
if (null !== $background) {
|
||||
$this->setBackground($background);
|
||||
}
|
||||
if (count($options)) {
|
||||
if (\count($options)) {
|
||||
$this->setOptions($options);
|
||||
}
|
||||
}
|
||||
|
|
@ -143,7 +143,7 @@ class OutputFormatterStyle implements OutputFormatterStyleInterface
|
|||
));
|
||||
}
|
||||
|
||||
if (!in_array(static::$availableOptions[$option], $this->options)) {
|
||||
if (!\in_array(static::$availableOptions[$option], $this->options)) {
|
||||
$this->options[] = static::$availableOptions[$option];
|
||||
}
|
||||
}
|
||||
|
|
@ -172,9 +172,7 @@ class OutputFormatterStyle implements OutputFormatterStyleInterface
|
|||
}
|
||||
|
||||
/**
|
||||
* Sets multiple style options at once.
|
||||
*
|
||||
* @param array $options
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function setOptions(array $options)
|
||||
{
|
||||
|
|
@ -205,14 +203,14 @@ class OutputFormatterStyle implements OutputFormatterStyleInterface
|
|||
$setCodes[] = $this->background['set'];
|
||||
$unsetCodes[] = $this->background['unset'];
|
||||
}
|
||||
if (count($this->options)) {
|
||||
if (\count($this->options)) {
|
||||
foreach ($this->options as $option) {
|
||||
$setCodes[] = $option['set'];
|
||||
$unsetCodes[] = $option['unset'];
|
||||
}
|
||||
}
|
||||
|
||||
if (0 === count($setCodes)) {
|
||||
if (0 === \count($setCodes)) {
|
||||
return $text;
|
||||
}
|
||||
|
||||
|
|
|
|||
2
pfosten/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php
vendored
Executable file → Normal file
2
pfosten/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php
vendored
Executable file → Normal file
|
|
@ -48,8 +48,6 @@ interface OutputFormatterStyleInterface
|
|||
|
||||
/**
|
||||
* Sets multiple style options at once.
|
||||
*
|
||||
* @param array $options
|
||||
*/
|
||||
public function setOptions(array $options);
|
||||
|
||||
|
|
|
|||
18
pfosten/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php
vendored
Executable file → Normal file
18
pfosten/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php
vendored
Executable file → Normal file
|
|
@ -23,16 +23,8 @@ class OutputFormatterStyleStack
|
|||
*/
|
||||
private $styles;
|
||||
|
||||
/**
|
||||
* @var OutputFormatterStyleInterface
|
||||
*/
|
||||
private $emptyStyle;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param OutputFormatterStyleInterface|null $emptyStyle
|
||||
*/
|
||||
public function __construct(OutputFormatterStyleInterface $emptyStyle = null)
|
||||
{
|
||||
$this->emptyStyle = $emptyStyle ?: new OutputFormatterStyle();
|
||||
|
|
@ -49,8 +41,6 @@ class OutputFormatterStyleStack
|
|||
|
||||
/**
|
||||
* Pushes a style in the stack.
|
||||
*
|
||||
* @param OutputFormatterStyleInterface $style
|
||||
*/
|
||||
public function push(OutputFormatterStyleInterface $style)
|
||||
{
|
||||
|
|
@ -60,8 +50,6 @@ class OutputFormatterStyleStack
|
|||
/**
|
||||
* Pops a style from the stack.
|
||||
*
|
||||
* @param OutputFormatterStyleInterface|null $style
|
||||
*
|
||||
* @return OutputFormatterStyleInterface
|
||||
*
|
||||
* @throws InvalidArgumentException When style tags incorrectly nested
|
||||
|
|
@ -78,7 +66,7 @@ class OutputFormatterStyleStack
|
|||
|
||||
foreach (array_reverse($this->styles, true) as $index => $stackedStyle) {
|
||||
if ($style->apply('') === $stackedStyle->apply('')) {
|
||||
$this->styles = array_slice($this->styles, 0, $index);
|
||||
$this->styles = \array_slice($this->styles, 0, $index);
|
||||
|
||||
return $stackedStyle;
|
||||
}
|
||||
|
|
@ -98,12 +86,10 @@ class OutputFormatterStyleStack
|
|||
return $this->emptyStyle;
|
||||
}
|
||||
|
||||
return $this->styles[count($this->styles) - 1];
|
||||
return $this->styles[\count($this->styles) - 1];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param OutputFormatterStyleInterface $emptyStyle
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function setEmptyStyle(OutputFormatterStyleInterface $emptyStyle)
|
||||
|
|
|
|||
2
pfosten/vendor/symfony/console/Helper/DebugFormatterHelper.php
vendored
Executable file → Normal file
2
pfosten/vendor/symfony/console/Helper/DebugFormatterHelper.php
vendored
Executable file → Normal file
|
|
@ -35,7 +35,7 @@ class DebugFormatterHelper extends Helper
|
|||
*/
|
||||
public function start($id, $message, $prefix = 'RUN')
|
||||
{
|
||||
$this->started[$id] = array('border' => ++$this->count % count($this->colors));
|
||||
$this->started[$id] = array('border' => ++$this->count % \count($this->colors));
|
||||
|
||||
return sprintf("%s<bg=blue;fg=white> %s </> <fg=blue>%s</>\n", $this->getBorder($id), $prefix, $message);
|
||||
}
|
||||
|
|
|
|||
5
pfosten/vendor/symfony/console/Helper/DescriptorHelper.php
vendored
Executable file → Normal file
5
pfosten/vendor/symfony/console/Helper/DescriptorHelper.php
vendored
Executable file → Normal file
|
|
@ -16,8 +16,8 @@ use Symfony\Component\Console\Descriptor\JsonDescriptor;
|
|||
use Symfony\Component\Console\Descriptor\MarkdownDescriptor;
|
||||
use Symfony\Component\Console\Descriptor\TextDescriptor;
|
||||
use Symfony\Component\Console\Descriptor\XmlDescriptor;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Exception\InvalidArgumentException;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
/**
|
||||
* This class adds helper method to describe objects in various formats.
|
||||
|
|
@ -31,9 +31,6 @@ class DescriptorHelper extends Helper
|
|||
*/
|
||||
private $descriptors = array();
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this
|
||||
|
|
|
|||
2
pfosten/vendor/symfony/console/Helper/FormatterHelper.php
vendored
Executable file → Normal file
2
pfosten/vendor/symfony/console/Helper/FormatterHelper.php
vendored
Executable file → Normal file
|
|
@ -45,7 +45,7 @@ class FormatterHelper extends Helper
|
|||
*/
|
||||
public function formatBlock($messages, $style, $large = false)
|
||||
{
|
||||
if (!is_array($messages)) {
|
||||
if (!\is_array($messages)) {
|
||||
$messages = array($messages);
|
||||
}
|
||||
|
||||
|
|
|
|||
14
pfosten/vendor/symfony/console/Helper/Helper.php
vendored
Executable file → Normal file
14
pfosten/vendor/symfony/console/Helper/Helper.php
vendored
Executable file → Normal file
|
|
@ -23,9 +23,7 @@ abstract class Helper implements HelperInterface
|
|||
protected $helperSet = null;
|
||||
|
||||
/**
|
||||
* Sets the helper set associated with this helper.
|
||||
*
|
||||
* @param HelperSet $helperSet A HelperSet instance
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function setHelperSet(HelperSet $helperSet = null)
|
||||
{
|
||||
|
|
@ -33,9 +31,7 @@ abstract class Helper implements HelperInterface
|
|||
}
|
||||
|
||||
/**
|
||||
* Gets the helper set associated with this helper.
|
||||
*
|
||||
* @return HelperSet|null
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getHelperSet()
|
||||
{
|
||||
|
|
@ -52,7 +48,7 @@ abstract class Helper implements HelperInterface
|
|||
public static function strlen($string)
|
||||
{
|
||||
if (false === $encoding = mb_detect_encoding($string, null, true)) {
|
||||
return strlen($string);
|
||||
return \strlen($string);
|
||||
}
|
||||
|
||||
return mb_strwidth($string, $encoding);
|
||||
|
|
@ -93,9 +89,9 @@ abstract class Helper implements HelperInterface
|
|||
foreach ($timeFormats as $index => $format) {
|
||||
if ($secs >= $format[0]) {
|
||||
if ((isset($timeFormats[$index + 1]) && $secs < $timeFormats[$index + 1][0])
|
||||
|| $index == count($timeFormats) - 1
|
||||
|| $index == \count($timeFormats) - 1
|
||||
) {
|
||||
if (2 == count($format)) {
|
||||
if (2 == \count($format)) {
|
||||
return $format[1];
|
||||
}
|
||||
|
||||
|
|
|
|||
2
pfosten/vendor/symfony/console/Helper/HelperInterface.php
vendored
Executable file → Normal file
2
pfosten/vendor/symfony/console/Helper/HelperInterface.php
vendored
Executable file → Normal file
|
|
@ -20,8 +20,6 @@ interface HelperInterface
|
|||
{
|
||||
/**
|
||||
* Sets the helper set associated with this helper.
|
||||
*
|
||||
* @param HelperSet $helperSet A HelperSet instance
|
||||
*/
|
||||
public function setHelperSet(HelperSet $helperSet = null);
|
||||
|
||||
|
|
|
|||
9
pfosten/vendor/symfony/console/Helper/HelperSet.php
vendored
Executable file → Normal file
9
pfosten/vendor/symfony/console/Helper/HelperSet.php
vendored
Executable file → Normal file
|
|
@ -28,14 +28,12 @@ class HelperSet implements \IteratorAggregate
|
|||
private $command;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param Helper[] $helpers An array of helper
|
||||
*/
|
||||
public function __construct(array $helpers = array())
|
||||
{
|
||||
foreach ($helpers as $alias => $helper) {
|
||||
$this->set($helper, is_int($alias) ? null : $alias);
|
||||
$this->set($helper, \is_int($alias) ? null : $alias);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -85,11 +83,6 @@ class HelperSet implements \IteratorAggregate
|
|||
return $this->helpers[$name];
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the command associated with this helper set.
|
||||
*
|
||||
* @param Command $command A Command instance
|
||||
*/
|
||||
public function setCommand(Command $command = null)
|
||||
{
|
||||
$this->command = $command;
|
||||
|
|
|
|||
2
pfosten/vendor/symfony/console/Helper/InputAwareHelper.php
vendored
Executable file → Normal file
2
pfosten/vendor/symfony/console/Helper/InputAwareHelper.php
vendored
Executable file → Normal file
|
|
@ -11,8 +11,8 @@
|
|||
|
||||
namespace Symfony\Component\Console\Helper;
|
||||
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputAwareInterface;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
|
||||
/**
|
||||
* An implementation of InputAwareInterface for Helpers.
|
||||
|
|
|
|||
7
pfosten/vendor/symfony/console/Helper/ProcessHelper.php
vendored
Executable file → Normal file
7
pfosten/vendor/symfony/console/Helper/ProcessHelper.php
vendored
Executable file → Normal file
|
|
@ -15,7 +15,6 @@ use Symfony\Component\Console\Output\ConsoleOutputInterface;
|
|||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Process\Exception\ProcessFailedException;
|
||||
use Symfony\Component\Process\Process;
|
||||
use Symfony\Component\Process\ProcessBuilder;
|
||||
|
||||
/**
|
||||
* The ProcessHelper class provides helpers to run external processes.
|
||||
|
|
@ -44,9 +43,7 @@ class ProcessHelper extends Helper
|
|||
|
||||
$formatter = $this->getHelperSet()->get('debug_formatter');
|
||||
|
||||
if (is_array($cmd)) {
|
||||
$process = ProcessBuilder::create($cmd)->getProcess();
|
||||
} elseif ($cmd instanceof Process) {
|
||||
if ($cmd instanceof Process) {
|
||||
$process = $cmd;
|
||||
} else {
|
||||
$process = new Process($cmd);
|
||||
|
|
@ -124,7 +121,7 @@ class ProcessHelper extends Helper
|
|||
$output->write($formatter->progress(spl_object_hash($process), $this->escapeString($buffer), Process::ERR === $type));
|
||||
|
||||
if (null !== $callback) {
|
||||
call_user_func($callback, $type, $buffer);
|
||||
\call_user_func($callback, $type, $buffer);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
|||
9
pfosten/vendor/symfony/console/Helper/ProgressBar.php
vendored
Executable file → Normal file
9
pfosten/vendor/symfony/console/Helper/ProgressBar.php
vendored
Executable file → Normal file
|
|
@ -11,9 +11,9 @@
|
|||
|
||||
namespace Symfony\Component\Console\Helper;
|
||||
|
||||
use Symfony\Component\Console\Exception\LogicException;
|
||||
use Symfony\Component\Console\Output\ConsoleOutputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Exception\LogicException;
|
||||
use Symfony\Component\Console\Terminal;
|
||||
|
||||
/**
|
||||
|
|
@ -24,7 +24,6 @@ use Symfony\Component\Console\Terminal;
|
|||
*/
|
||||
final class ProgressBar
|
||||
{
|
||||
// options
|
||||
private $barWidth = 28;
|
||||
private $barChar;
|
||||
private $emptyBarChar = '-';
|
||||
|
|
@ -32,10 +31,6 @@ final class ProgressBar
|
|||
private $format;
|
||||
private $internalFormat;
|
||||
private $redrawFreq = 1;
|
||||
|
||||
/**
|
||||
* @var OutputInterface
|
||||
*/
|
||||
private $output;
|
||||
private $step = 0;
|
||||
private $max;
|
||||
|
|
@ -588,7 +583,7 @@ final class ProgressBar
|
|||
$regex = "{%([a-z\-_]+)(?:\:([^%]+))?%}i";
|
||||
$callback = function ($matches) {
|
||||
if ($formatter = $this::getPlaceholderFormatterDefinition($matches[1])) {
|
||||
$text = call_user_func($formatter, $this, $this->output);
|
||||
$text = \call_user_func($formatter, $this, $this->output);
|
||||
} elseif (isset($this->messages[$matches[1]])) {
|
||||
$text = $this->messages[$matches[1]];
|
||||
} else {
|
||||
|
|
|
|||
6
pfosten/vendor/symfony/console/Helper/ProgressIndicator.php
vendored
Executable file → Normal file
6
pfosten/vendor/symfony/console/Helper/ProgressIndicator.php
vendored
Executable file → Normal file
|
|
@ -53,7 +53,7 @@ class ProgressIndicator
|
|||
|
||||
$indicatorValues = array_values($indicatorValues);
|
||||
|
||||
if (2 > count($indicatorValues)) {
|
||||
if (2 > \count($indicatorValues)) {
|
||||
throw new InvalidArgumentException('Must have at least 2 indicator value characters.');
|
||||
}
|
||||
|
||||
|
|
@ -196,7 +196,7 @@ class ProgressIndicator
|
|||
|
||||
$this->overwrite(preg_replace_callback("{%([a-z\-_]+)(?:\:([^%]+))?%}i", function ($matches) use ($self) {
|
||||
if ($formatter = $self::getPlaceholderFormatterDefinition($matches[1])) {
|
||||
return call_user_func($formatter, $self);
|
||||
return \call_user_func($formatter, $self);
|
||||
}
|
||||
|
||||
return $matches[0];
|
||||
|
|
@ -241,7 +241,7 @@ class ProgressIndicator
|
|||
{
|
||||
return array(
|
||||
'indicator' => function (ProgressIndicator $indicator) {
|
||||
return $indicator->indicatorValues[$indicator->indicatorCurrent % count($indicator->indicatorValues)];
|
||||
return $indicator->indicatorValues[$indicator->indicatorCurrent % \count($indicator->indicatorValues)];
|
||||
},
|
||||
'message' => function (ProgressIndicator $indicator) {
|
||||
return $indicator->message;
|
||||
|
|
|
|||
67
pfosten/vendor/symfony/console/Helper/QuestionHelper.php
vendored
Executable file → Normal file
67
pfosten/vendor/symfony/console/Helper/QuestionHelper.php
vendored
Executable file → Normal file
|
|
@ -13,13 +13,14 @@ namespace Symfony\Component\Console\Helper;
|
|||
|
||||
use Symfony\Component\Console\Exception\InvalidArgumentException;
|
||||
use Symfony\Component\Console\Exception\RuntimeException;
|
||||
use Symfony\Component\Console\Formatter\OutputFormatter;
|
||||
use Symfony\Component\Console\Formatter\OutputFormatterStyle;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\StreamableInputInterface;
|
||||
use Symfony\Component\Console\Output\ConsoleOutputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Formatter\OutputFormatterStyle;
|
||||
use Symfony\Component\Console\Question\Question;
|
||||
use Symfony\Component\Console\Question\ChoiceQuestion;
|
||||
use Symfony\Component\Console\Question\Question;
|
||||
|
||||
/**
|
||||
* The QuestionHelper class provides helpers to interact with the user.
|
||||
|
|
@ -35,10 +36,6 @@ class QuestionHelper extends Helper
|
|||
/**
|
||||
* Asks a question to the user.
|
||||
*
|
||||
* @param InputInterface $input An InputInterface instance
|
||||
* @param OutputInterface $output An OutputInterface instance
|
||||
* @param Question $question The question to ask
|
||||
*
|
||||
* @return mixed The user answer
|
||||
*
|
||||
* @throws RuntimeException If there is no data to read in the input stream
|
||||
|
|
@ -50,6 +47,12 @@ class QuestionHelper extends Helper
|
|||
}
|
||||
|
||||
if (!$input->isInteractive()) {
|
||||
if ($question instanceof ChoiceQuestion) {
|
||||
$choices = $question->getChoices();
|
||||
|
||||
return $choices[$question->getDefault()];
|
||||
}
|
||||
|
||||
return $question->getDefault();
|
||||
}
|
||||
|
||||
|
|
@ -82,9 +85,9 @@ class QuestionHelper extends Helper
|
|||
*/
|
||||
public function setInputStream($stream)
|
||||
{
|
||||
@trigger_error(sprintf('The %s() method is deprecated since version 3.2 and will be removed in 4.0. Use %s::setStream() instead.', __METHOD__, StreamableInputInterface::class), E_USER_DEPRECATED);
|
||||
@trigger_error(sprintf('The %s() method is deprecated since Symfony 3.2 and will be removed in 4.0. Use %s::setStream() instead.', __METHOD__, StreamableInputInterface::class), E_USER_DEPRECATED);
|
||||
|
||||
if (!is_resource($stream)) {
|
||||
if (!\is_resource($stream)) {
|
||||
throw new InvalidArgumentException('Input stream must be a valid resource.');
|
||||
}
|
||||
|
||||
|
|
@ -101,8 +104,8 @@ class QuestionHelper extends Helper
|
|||
*/
|
||||
public function getInputStream()
|
||||
{
|
||||
if (0 === func_num_args() || func_get_arg(0)) {
|
||||
@trigger_error(sprintf('The %s() method is deprecated since version 3.2 and will be removed in 4.0. Use %s::getStream() instead.', __METHOD__, StreamableInputInterface::class), E_USER_DEPRECATED);
|
||||
if (0 === \func_num_args() || func_get_arg(0)) {
|
||||
@trigger_error(sprintf('The %s() method is deprecated since Symfony 3.2 and will be removed in 4.0. Use %s::getStream() instead.', __METHOD__, StreamableInputInterface::class), E_USER_DEPRECATED);
|
||||
}
|
||||
|
||||
return $this->inputStream;
|
||||
|
|
@ -127,13 +130,9 @@ class QuestionHelper extends Helper
|
|||
/**
|
||||
* Asks the question to the user.
|
||||
*
|
||||
* @param OutputInterface $output
|
||||
* @param Question $question
|
||||
*
|
||||
* @return bool|mixed|null|string
|
||||
*
|
||||
* @throws \Exception
|
||||
* @throws \RuntimeException
|
||||
* @throws RuntimeException In case the fallback is deactivated and the response cannot be hidden
|
||||
*/
|
||||
private function doAsk(OutputInterface $output, Question $question)
|
||||
{
|
||||
|
|
@ -147,7 +146,7 @@ class QuestionHelper extends Helper
|
|||
if ($question->isHidden()) {
|
||||
try {
|
||||
$ret = trim($this->getHiddenResponse($output, $inputStream));
|
||||
} catch (\RuntimeException $e) {
|
||||
} catch (RuntimeException $e) {
|
||||
if (!$question->isHiddenFallback()) {
|
||||
throw $e;
|
||||
}
|
||||
|
|
@ -162,10 +161,10 @@ class QuestionHelper extends Helper
|
|||
$ret = trim($ret);
|
||||
}
|
||||
} else {
|
||||
$ret = trim($this->autocomplete($output, $question, $inputStream));
|
||||
$ret = trim($this->autocomplete($output, $question, $inputStream, \is_array($autocomplete) ? $autocomplete : iterator_to_array($autocomplete, false)));
|
||||
}
|
||||
|
||||
$ret = strlen($ret) > 0 ? $ret : $question->getDefault();
|
||||
$ret = \strlen($ret) > 0 ? $ret : $question->getDefault();
|
||||
|
||||
if ($normalizer = $question->getNormalizer()) {
|
||||
return $normalizer($ret);
|
||||
|
|
@ -176,9 +175,6 @@ class QuestionHelper extends Helper
|
|||
|
||||
/**
|
||||
* Outputs the question prompt.
|
||||
*
|
||||
* @param OutputInterface $output
|
||||
* @param Question $question
|
||||
*/
|
||||
protected function writePrompt(OutputInterface $output, Question $question)
|
||||
{
|
||||
|
|
@ -203,9 +199,6 @@ class QuestionHelper extends Helper
|
|||
|
||||
/**
|
||||
* Outputs an error message.
|
||||
*
|
||||
* @param OutputInterface $output
|
||||
* @param \Exception $error
|
||||
*/
|
||||
protected function writeError(OutputInterface $output, \Exception $error)
|
||||
{
|
||||
|
|
@ -224,18 +217,18 @@ class QuestionHelper extends Helper
|
|||
* @param OutputInterface $output
|
||||
* @param Question $question
|
||||
* @param resource $inputStream
|
||||
* @param array $autocomplete
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private function autocomplete(OutputInterface $output, Question $question, $inputStream)
|
||||
private function autocomplete(OutputInterface $output, Question $question, $inputStream, array $autocomplete)
|
||||
{
|
||||
$autocomplete = $question->getAutocompleterValues();
|
||||
$ret = '';
|
||||
|
||||
$i = 0;
|
||||
$ofs = -1;
|
||||
$matches = $autocomplete;
|
||||
$numMatches = count($matches);
|
||||
$numMatches = \count($matches);
|
||||
|
||||
$sttyMode = shell_exec('stty -g');
|
||||
|
||||
|
|
@ -257,10 +250,10 @@ class QuestionHelper extends Helper
|
|||
$output->write("\033[1D");
|
||||
}
|
||||
|
||||
if ($i === 0) {
|
||||
if (0 === $i) {
|
||||
$ofs = -1;
|
||||
$matches = $autocomplete;
|
||||
$numMatches = count($matches);
|
||||
$numMatches = \count($matches);
|
||||
} else {
|
||||
$numMatches = 0;
|
||||
}
|
||||
|
|
@ -284,13 +277,13 @@ class QuestionHelper extends Helper
|
|||
$ofs += ('A' === $c[2]) ? -1 : 1;
|
||||
$ofs = ($numMatches + $ofs) % $numMatches;
|
||||
}
|
||||
} elseif (ord($c) < 32) {
|
||||
} elseif (\ord($c) < 32) {
|
||||
if ("\t" === $c || "\n" === $c) {
|
||||
if ($numMatches > 0 && -1 !== $ofs) {
|
||||
$ret = $matches[$ofs];
|
||||
// Echo out remaining chars for current match
|
||||
$output->write(substr($ret, $i));
|
||||
$i = strlen($ret);
|
||||
$i = \strlen($ret);
|
||||
}
|
||||
|
||||
if ("\n" === $c) {
|
||||
|
|
@ -312,7 +305,7 @@ class QuestionHelper extends Helper
|
|||
|
||||
foreach ($autocomplete as $value) {
|
||||
// If typed characters match the beginning chunk of value (e.g. [AcmeDe]moBundle)
|
||||
if (0 === strpos($value, $ret) && $i !== strlen($value)) {
|
||||
if (0 === strpos($value, $ret)) {
|
||||
$matches[$numMatches++] = $value;
|
||||
}
|
||||
}
|
||||
|
|
@ -325,7 +318,7 @@ class QuestionHelper extends Helper
|
|||
// Save cursor position
|
||||
$output->write("\0337");
|
||||
// Write highlighted text
|
||||
$output->write('<hl>'.substr($matches[$ofs], $i).'</hl>');
|
||||
$output->write('<hl>'.OutputFormatter::escapeTrailingBackslash(substr($matches[$ofs], $i)).'</hl>');
|
||||
// Restore cursor position
|
||||
$output->write("\0338");
|
||||
}
|
||||
|
|
@ -349,7 +342,7 @@ class QuestionHelper extends Helper
|
|||
*/
|
||||
private function getHiddenResponse(OutputInterface $output, $inputStream)
|
||||
{
|
||||
if ('\\' === DIRECTORY_SEPARATOR) {
|
||||
if ('\\' === \DIRECTORY_SEPARATOR) {
|
||||
$exe = __DIR__.'/../Resources/bin/hiddeninput.exe';
|
||||
|
||||
// handle code running from a phar
|
||||
|
|
@ -387,7 +380,7 @@ class QuestionHelper extends Helper
|
|||
}
|
||||
|
||||
if (false !== $shell = $this->getShell()) {
|
||||
$readCmd = $shell === 'csh' ? 'set mypassword = $<' : 'read -r mypassword';
|
||||
$readCmd = 'csh' === $shell ? 'set mypassword = $<' : 'read -r mypassword';
|
||||
$command = sprintf("/usr/bin/env %s -c 'stty -echo; %s; stty echo; echo \$mypassword'", $shell, $readCmd);
|
||||
$value = rtrim(shell_exec($command));
|
||||
$output->writeln('');
|
||||
|
|
@ -419,7 +412,7 @@ class QuestionHelper extends Helper
|
|||
}
|
||||
|
||||
try {
|
||||
return call_user_func($question->getValidator(), $interviewer());
|
||||
return \call_user_func($question->getValidator(), $interviewer());
|
||||
} catch (RuntimeException $e) {
|
||||
throw $e;
|
||||
} catch (\Exception $error) {
|
||||
|
|
@ -469,6 +462,6 @@ class QuestionHelper extends Helper
|
|||
|
||||
exec('stty 2>&1', $output, $exitcode);
|
||||
|
||||
return self::$stty = $exitcode === 0;
|
||||
return self::$stty = 0 === $exitcode;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
8
pfosten/vendor/symfony/console/Helper/SymfonyQuestionHelper.php
vendored
Executable file → Normal file
8
pfosten/vendor/symfony/console/Helper/SymfonyQuestionHelper.php
vendored
Executable file → Normal file
|
|
@ -12,13 +12,13 @@
|
|||
namespace Symfony\Component\Console\Helper;
|
||||
|
||||
use Symfony\Component\Console\Exception\LogicException;
|
||||
use Symfony\Component\Console\Formatter\OutputFormatter;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Question\ChoiceQuestion;
|
||||
use Symfony\Component\Console\Question\ConfirmationQuestion;
|
||||
use Symfony\Component\Console\Question\Question;
|
||||
use Symfony\Component\Console\Style\SymfonyStyle;
|
||||
use Symfony\Component\Console\Formatter\OutputFormatter;
|
||||
|
||||
/**
|
||||
* Symfony Style Guide compliant question helper.
|
||||
|
|
@ -29,6 +29,8 @@ class SymfonyQuestionHelper extends QuestionHelper
|
|||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*
|
||||
* To be removed in 4.0
|
||||
*/
|
||||
public function ask(InputInterface $input, OutputInterface $output, Question $question)
|
||||
{
|
||||
|
|
@ -38,7 +40,9 @@ class SymfonyQuestionHelper extends QuestionHelper
|
|||
$value = $validator($value);
|
||||
} else {
|
||||
// make required
|
||||
if (!is_array($value) && !is_bool($value) && 0 === strlen($value)) {
|
||||
if (!\is_array($value) && !\is_bool($value) && 0 === \strlen($value)) {
|
||||
@trigger_error('The default question validator is deprecated since Symfony 3.3 and will not be used anymore in version 4.0. Set a custom question validator if needed.', E_USER_DEPRECATED);
|
||||
|
||||
throw new LogicException('A value is required.');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
55
pfosten/vendor/symfony/console/Helper/Table.php
vendored
Executable file → Normal file
55
pfosten/vendor/symfony/console/Helper/Table.php
vendored
Executable file → Normal file
|
|
@ -11,8 +11,8 @@
|
|||
|
||||
namespace Symfony\Component\Console\Helper;
|
||||
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Exception\InvalidArgumentException;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
/**
|
||||
* Provides helpers to display a table.
|
||||
|
|
@ -26,29 +26,23 @@ class Table
|
|||
{
|
||||
/**
|
||||
* Table headers.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private $headers = array();
|
||||
|
||||
/**
|
||||
* Table rows.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private $rows = array();
|
||||
|
||||
/**
|
||||
* Column widths cache.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private $effectiveColumnWidths = array();
|
||||
|
||||
/**
|
||||
* Number of columns cache.
|
||||
*
|
||||
* @var array
|
||||
* @var int
|
||||
*/
|
||||
private $numberOfColumns;
|
||||
|
||||
|
|
@ -216,7 +210,7 @@ class Table
|
|||
public function setHeaders(array $headers)
|
||||
{
|
||||
$headers = array_values($headers);
|
||||
if (!empty($headers) && !is_array($headers[0])) {
|
||||
if (!empty($headers) && !\is_array($headers[0])) {
|
||||
$headers = array($headers);
|
||||
}
|
||||
|
||||
|
|
@ -249,7 +243,7 @@ class Table
|
|||
return $this;
|
||||
}
|
||||
|
||||
if (!is_array($row)) {
|
||||
if (!\is_array($row)) {
|
||||
throw new InvalidArgumentException('A row must be an array or a TableSeparator instance.');
|
||||
}
|
||||
|
||||
|
|
@ -269,6 +263,7 @@ class Table
|
|||
* Renders table to output.
|
||||
*
|
||||
* Example:
|
||||
* <code>
|
||||
* +---------------+-----------------------+------------------+
|
||||
* | ISBN | Title | Author |
|
||||
* +---------------+-----------------------+------------------+
|
||||
|
|
@ -276,6 +271,7 @@ class Table
|
|||
* | 9971-5-0210-0 | A Tale of Two Cities | Charles Dickens |
|
||||
* | 960-425-059-0 | The Lord of the Rings | J. R. R. Tolkien |
|
||||
* +---------------+-----------------------+------------------+
|
||||
* </code>
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
|
|
@ -309,7 +305,7 @@ class Table
|
|||
/**
|
||||
* Renders horizontal header separator.
|
||||
*
|
||||
* Example: +-----+-----------+-------+
|
||||
* Example: <code>+-----+-----------+-------+</code>
|
||||
*/
|
||||
private function renderRowSeparator()
|
||||
{
|
||||
|
|
@ -340,7 +336,7 @@ class Table
|
|||
/**
|
||||
* Renders table row.
|
||||
*
|
||||
* Example: | 9971-5-0210-0 | A Tale of Two Cities | Charles Dickens |
|
||||
* Example: <code>| 9971-5-0210-0 | A Tale of Two Cities | Charles Dickens |</code>
|
||||
*
|
||||
* @param array $row
|
||||
* @param string $cellFormat
|
||||
|
|
@ -379,7 +375,7 @@ class Table
|
|||
|
||||
// str_pad won't work properly with multi-byte strings, we need to fix the padding
|
||||
if (false !== $encoding = mb_detect_encoding($cell, null, true)) {
|
||||
$width += strlen($cell) - mb_strwidth($cell, $encoding);
|
||||
$width += \strlen($cell) - mb_strwidth($cell, $encoding);
|
||||
}
|
||||
|
||||
$style = $this->getColumnStyle($column);
|
||||
|
|
@ -418,7 +414,7 @@ class Table
|
|||
private function buildTableRows($rows)
|
||||
{
|
||||
$unmergedRows = array();
|
||||
for ($rowKey = 0; $rowKey < count($rows); ++$rowKey) {
|
||||
for ($rowKey = 0; $rowKey < \count($rows); ++$rowKey) {
|
||||
$rows = $this->fillNextRows($rows, $rowKey);
|
||||
|
||||
// Remove any new line breaks and replace it with a new line
|
||||
|
|
@ -458,17 +454,22 @@ class Table
|
|||
* @param int $line
|
||||
*
|
||||
* @return array
|
||||
*
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
private function fillNextRows($rows, $line)
|
||||
private function fillNextRows(array $rows, $line)
|
||||
{
|
||||
$unmergedRows = array();
|
||||
foreach ($rows[$line] as $column => $cell) {
|
||||
if (null !== $cell && !$cell instanceof TableCell && !is_scalar($cell) && !(\is_object($cell) && method_exists($cell, '__toString'))) {
|
||||
throw new InvalidArgumentException(sprintf('A cell must be a TableCell, a scalar or an object implementing __toString, %s given.', \gettype($cell)));
|
||||
}
|
||||
if ($cell instanceof TableCell && $cell->getRowspan() > 1) {
|
||||
$nbLines = $cell->getRowspan() - 1;
|
||||
$lines = array($cell);
|
||||
if (strstr($cell, "\n")) {
|
||||
$lines = explode("\n", str_replace("\n", "<fg=default;bg=default>\n</>", $cell));
|
||||
$nbLines = count($lines) > $nbLines ? substr_count($cell, "\n") : $nbLines;
|
||||
$nbLines = \count($lines) > $nbLines ? substr_count($cell, "\n") : $nbLines;
|
||||
|
||||
$rows[$line][$column] = new TableCell($lines[0], array('colspan' => $cell->getColspan()));
|
||||
unset($lines[0]);
|
||||
|
|
@ -488,7 +489,7 @@ class Table
|
|||
|
||||
foreach ($unmergedRows as $unmergedRowKey => $unmergedRow) {
|
||||
// we need to know if $unmergedRow will be merged or inserted into $rows
|
||||
if (isset($rows[$unmergedRowKey]) && is_array($rows[$unmergedRowKey]) && ($this->getNumberOfColumns($rows[$unmergedRowKey]) + $this->getNumberOfColumns($unmergedRows[$unmergedRowKey]) <= $this->numberOfColumns)) {
|
||||
if (isset($rows[$unmergedRowKey]) && \is_array($rows[$unmergedRowKey]) && ($this->getNumberOfColumns($rows[$unmergedRowKey]) + $this->getNumberOfColumns($unmergedRows[$unmergedRowKey]) <= $this->numberOfColumns)) {
|
||||
foreach ($unmergedRow as $cellKey => $cell) {
|
||||
// insert cell into row at cellKey position
|
||||
array_splice($rows[$unmergedRowKey], $cellKey, 0, array($cell));
|
||||
|
|
@ -510,8 +511,6 @@ class Table
|
|||
/**
|
||||
* fill cells for a row that contains colspan > 1.
|
||||
*
|
||||
* @param array $row
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private function fillCells($row)
|
||||
|
|
@ -536,7 +535,7 @@ class Table
|
|||
*
|
||||
* @return array
|
||||
*/
|
||||
private function copyRow($rows, $line)
|
||||
private function copyRow(array $rows, $line)
|
||||
{
|
||||
$row = $rows[$line];
|
||||
foreach ($row as $cellKey => $cellValue) {
|
||||
|
|
@ -552,13 +551,11 @@ class Table
|
|||
/**
|
||||
* Gets number of columns by row.
|
||||
*
|
||||
* @param array $row
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
private function getNumberOfColumns(array $row)
|
||||
{
|
||||
$columns = count($row);
|
||||
$columns = \count($row);
|
||||
foreach ($row as $column) {
|
||||
$columns += $column instanceof TableCell ? ($column->getColspan() - 1) : 0;
|
||||
}
|
||||
|
|
@ -569,11 +566,9 @@ class Table
|
|||
/**
|
||||
* Gets list of columns for the given row.
|
||||
*
|
||||
* @param array $row
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private function getRowColumns($row)
|
||||
private function getRowColumns(array $row)
|
||||
{
|
||||
$columns = range(0, $this->numberOfColumns - 1);
|
||||
foreach ($row as $cellKey => $cell) {
|
||||
|
|
@ -588,10 +583,8 @@ class Table
|
|||
|
||||
/**
|
||||
* Calculates columns widths.
|
||||
*
|
||||
* @param array $rows
|
||||
*/
|
||||
private function calculateColumnsWidth($rows)
|
||||
private function calculateColumnsWidth(array $rows)
|
||||
{
|
||||
for ($column = 0; $column < $this->numberOfColumns; ++$column) {
|
||||
$lengths = array();
|
||||
|
|
@ -616,7 +609,7 @@ class Table
|
|||
$lengths[] = $this->getCellWidth($row, $column);
|
||||
}
|
||||
|
||||
$this->effectiveColumnWidths[$column] = max($lengths) + strlen($this->style->getCellRowContentFormat()) - 2;
|
||||
$this->effectiveColumnWidths[$column] = max($lengths) + \strlen($this->style->getCellRowContentFormat()) - 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -627,7 +620,7 @@ class Table
|
|||
*/
|
||||
private function getColumnSeparatorWidth()
|
||||
{
|
||||
return strlen(sprintf($this->style->getBorderFormat(), $this->style->getVerticalBorderChar()));
|
||||
return \strlen(sprintf($this->style->getBorderFormat(), $this->style->getVerticalBorderChar()));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
9
pfosten/vendor/symfony/console/Helper/TableCell.php
vendored
Executable file → Normal file
9
pfosten/vendor/symfony/console/Helper/TableCell.php
vendored
Executable file → Normal file
|
|
@ -18,14 +18,7 @@ use Symfony\Component\Console\Exception\InvalidArgumentException;
|
|||
*/
|
||||
class TableCell
|
||||
{
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $value;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
private $options = array(
|
||||
'rowspan' => 1,
|
||||
'colspan' => 1,
|
||||
|
|
@ -37,7 +30,7 @@ class TableCell
|
|||
*/
|
||||
public function __construct($value = '', array $options = array())
|
||||
{
|
||||
if (is_numeric($value) && !is_string($value)) {
|
||||
if (is_numeric($value) && !\is_string($value)) {
|
||||
$value = (string) $value;
|
||||
}
|
||||
|
||||
|
|
|
|||
3
pfosten/vendor/symfony/console/Helper/TableSeparator.php
vendored
Executable file → Normal file
3
pfosten/vendor/symfony/console/Helper/TableSeparator.php
vendored
Executable file → Normal file
|
|
@ -18,9 +18,6 @@ namespace Symfony\Component\Console\Helper;
|
|||
*/
|
||||
class TableSeparator extends TableCell
|
||||
{
|
||||
/**
|
||||
* @param array $options
|
||||
*/
|
||||
public function __construct(array $options = array())
|
||||
{
|
||||
parent::__construct('', $options);
|
||||
|
|
|
|||
2
pfosten/vendor/symfony/console/Helper/TableStyle.php
vendored
Executable file → Normal file
2
pfosten/vendor/symfony/console/Helper/TableStyle.php
vendored
Executable file → Normal file
|
|
@ -237,7 +237,7 @@ class TableStyle
|
|||
*/
|
||||
public function setPadType($padType)
|
||||
{
|
||||
if (!in_array($padType, array(STR_PAD_LEFT, STR_PAD_RIGHT, STR_PAD_BOTH), true)) {
|
||||
if (!\in_array($padType, array(STR_PAD_LEFT, STR_PAD_RIGHT, STR_PAD_BOTH), true)) {
|
||||
throw new InvalidArgumentException('Invalid padding type. Expected one of (STR_PAD_LEFT, STR_PAD_RIGHT, STR_PAD_BOTH).');
|
||||
}
|
||||
|
||||
|
|
|
|||
45
pfosten/vendor/symfony/console/Input/ArgvInput.php
vendored
Executable file → Normal file
45
pfosten/vendor/symfony/console/Input/ArgvInput.php
vendored
Executable file → Normal file
|
|
@ -44,8 +44,6 @@ class ArgvInput extends Input
|
|||
private $parsed;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param array|null $argv An array of parameters from the CLI (in the argv format)
|
||||
* @param InputDefinition|null $definition A InputDefinition instance
|
||||
*/
|
||||
|
|
@ -99,7 +97,7 @@ class ArgvInput extends Input
|
|||
{
|
||||
$name = substr($token, 1);
|
||||
|
||||
if (strlen($name) > 1) {
|
||||
if (\strlen($name) > 1) {
|
||||
if ($this->definition->hasShortcut($name[0]) && $this->definition->getOptionForShortcut($name[0])->acceptValue()) {
|
||||
// an option with a value (with no space)
|
||||
$this->addShortOption($name[0], substr($name, 1));
|
||||
|
|
@ -120,7 +118,7 @@ class ArgvInput extends Input
|
|||
*/
|
||||
private function parseShortOptionSet($name)
|
||||
{
|
||||
$len = strlen($name);
|
||||
$len = \strlen($name);
|
||||
for ($i = 0; $i < $len; ++$i) {
|
||||
if (!$this->definition->hasShortcut($name[$i])) {
|
||||
throw new RuntimeException(sprintf('The "-%s" option does not exist.', $name[$i]));
|
||||
|
|
@ -147,7 +145,7 @@ class ArgvInput extends Input
|
|||
$name = substr($token, 2);
|
||||
|
||||
if (false !== $pos = strpos($name, '=')) {
|
||||
if (0 === strlen($value = substr($name, $pos + 1))) {
|
||||
if (0 === \strlen($value = substr($name, $pos + 1))) {
|
||||
// if no value after "=" then substr() returns "" since php7 only, false before
|
||||
// see http://php.net/manual/fr/migration70.incompatible.php#119151
|
||||
if (\PHP_VERSION_ID < 70000 && false === $value) {
|
||||
|
|
@ -170,7 +168,7 @@ class ArgvInput extends Input
|
|||
*/
|
||||
private function parseArgument($token)
|
||||
{
|
||||
$c = count($this->arguments);
|
||||
$c = \count($this->arguments);
|
||||
|
||||
// if input is expecting another argument, add it
|
||||
if ($this->definition->hasArgument($c)) {
|
||||
|
|
@ -185,7 +183,7 @@ class ArgvInput extends Input
|
|||
// unexpected argument
|
||||
} else {
|
||||
$all = $this->definition->getArguments();
|
||||
if (count($all)) {
|
||||
if (\count($all)) {
|
||||
throw new RuntimeException(sprintf('Too many arguments, expected arguments "%s".', implode('" "', array_keys($all))));
|
||||
}
|
||||
|
||||
|
|
@ -230,11 +228,11 @@ class ArgvInput extends Input
|
|||
throw new RuntimeException(sprintf('The "--%s" option does not accept a value.', $name));
|
||||
}
|
||||
|
||||
if (in_array($value, array('', null), true) && $option->acceptValue() && count($this->parsed)) {
|
||||
if (\in_array($value, array('', null), true) && $option->acceptValue() && \count($this->parsed)) {
|
||||
// if option accepts an optional or mandatory argument
|
||||
// let's see if there is one provided
|
||||
$next = array_shift($this->parsed);
|
||||
if ((isset($next[0]) && '-' !== $next[0]) || in_array($next, array('', null), true)) {
|
||||
if ((isset($next[0]) && '-' !== $next[0]) || \in_array($next, array('', null), true)) {
|
||||
$value = $next;
|
||||
} else {
|
||||
array_unshift($this->parsed, $next);
|
||||
|
|
@ -280,11 +278,15 @@ class ArgvInput extends Input
|
|||
$values = (array) $values;
|
||||
|
||||
foreach ($this->tokens as $token) {
|
||||
if ($onlyParams && $token === '--') {
|
||||
if ($onlyParams && '--' === $token) {
|
||||
return false;
|
||||
}
|
||||
foreach ($values as $value) {
|
||||
if ($token === $value || 0 === strpos($token, $value.'=')) {
|
||||
// Options with values:
|
||||
// For long options, test for '--option=' at beginning
|
||||
// For short options, test for '-o' at beginning
|
||||
$leading = 0 === strpos($value, '--') ? $value.'=' : $value;
|
||||
if ($token === $value || '' !== $leading && 0 === strpos($token, $leading)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -301,20 +303,23 @@ class ArgvInput extends Input
|
|||
$values = (array) $values;
|
||||
$tokens = $this->tokens;
|
||||
|
||||
while (0 < count($tokens)) {
|
||||
while (0 < \count($tokens)) {
|
||||
$token = array_shift($tokens);
|
||||
if ($onlyParams && $token === '--') {
|
||||
return false;
|
||||
if ($onlyParams && '--' === $token) {
|
||||
return $default;
|
||||
}
|
||||
|
||||
foreach ($values as $value) {
|
||||
if ($token === $value || 0 === strpos($token, $value.'=')) {
|
||||
if (false !== $pos = strpos($token, '=')) {
|
||||
return substr($token, $pos + 1);
|
||||
}
|
||||
|
||||
if ($token === $value) {
|
||||
return array_shift($tokens);
|
||||
}
|
||||
// Options with values:
|
||||
// For long options, test for '--option=' at beginning
|
||||
// For short options, test for '-o' at beginning
|
||||
$leading = 0 === strpos($value, '--') ? $value.'=' : $value;
|
||||
if ('' !== $leading && 0 === strpos($token, $leading)) {
|
||||
return substr($token, \strlen($leading));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -333,7 +338,7 @@ class ArgvInput extends Input
|
|||
return $match[1].$this->escapeToken($match[2]);
|
||||
}
|
||||
|
||||
if ($token && $token[0] !== '-') {
|
||||
if ($token && '-' !== $token[0]) {
|
||||
return $this->escapeToken($token);
|
||||
}
|
||||
|
||||
|
|
|
|||
34
pfosten/vendor/symfony/console/Input/ArrayInput.php
vendored
Executable file → Normal file
34
pfosten/vendor/symfony/console/Input/ArrayInput.php
vendored
Executable file → Normal file
|
|
@ -27,12 +27,6 @@ class ArrayInput extends Input
|
|||
{
|
||||
private $parameters;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param array $parameters An array of parameters
|
||||
* @param InputDefinition|null $definition A InputDefinition instance
|
||||
*/
|
||||
public function __construct(array $parameters, InputDefinition $definition = null)
|
||||
{
|
||||
$this->parameters = $parameters;
|
||||
|
|
@ -62,15 +56,15 @@ class ArrayInput extends Input
|
|||
$values = (array) $values;
|
||||
|
||||
foreach ($this->parameters as $k => $v) {
|
||||
if (!is_int($k)) {
|
||||
if (!\is_int($k)) {
|
||||
$v = $k;
|
||||
}
|
||||
|
||||
if ($onlyParams && $v === '--') {
|
||||
if ($onlyParams && '--' === $v) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (in_array($v, $values)) {
|
||||
if (\in_array($v, $values)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -86,15 +80,15 @@ class ArrayInput extends Input
|
|||
$values = (array) $values;
|
||||
|
||||
foreach ($this->parameters as $k => $v) {
|
||||
if ($onlyParams && ($k === '--' || (is_int($k) && $v === '--'))) {
|
||||
return false;
|
||||
if ($onlyParams && ('--' === $k || (\is_int($k) && '--' === $v))) {
|
||||
return $default;
|
||||
}
|
||||
|
||||
if (is_int($k)) {
|
||||
if (in_array($v, $values)) {
|
||||
if (\is_int($k)) {
|
||||
if (\in_array($v, $values)) {
|
||||
return true;
|
||||
}
|
||||
} elseif (in_array($k, $values)) {
|
||||
} elseif (\in_array($k, $values)) {
|
||||
return $v;
|
||||
}
|
||||
}
|
||||
|
|
@ -112,9 +106,15 @@ class ArrayInput extends Input
|
|||
$params = array();
|
||||
foreach ($this->parameters as $param => $val) {
|
||||
if ($param && '-' === $param[0]) {
|
||||
$params[] = $param.('' != $val ? '='.$this->escapeToken($val) : '');
|
||||
if (\is_array($val)) {
|
||||
foreach ($val as $v) {
|
||||
$params[] = $param.('' != $v ? '='.$this->escapeToken($v) : '');
|
||||
}
|
||||
} else {
|
||||
$params[] = $param.('' != $val ? '='.$this->escapeToken($val) : '');
|
||||
}
|
||||
} else {
|
||||
$params[] = $this->escapeToken($val);
|
||||
$params[] = \is_array($val) ? implode(' ', array_map(array($this, 'escapeToken'), $val)) : $this->escapeToken($val);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -127,7 +127,7 @@ class ArrayInput extends Input
|
|||
protected function parse()
|
||||
{
|
||||
foreach ($this->parameters as $key => $value) {
|
||||
if ($key === '--') {
|
||||
if ('--' === $key) {
|
||||
return;
|
||||
}
|
||||
if (0 === strpos($key, '--')) {
|
||||
|
|
|
|||
10
pfosten/vendor/symfony/console/Input/Input.php
vendored
Executable file → Normal file
10
pfosten/vendor/symfony/console/Input/Input.php
vendored
Executable file → Normal file
|
|
@ -27,20 +27,12 @@ use Symfony\Component\Console\Exception\RuntimeException;
|
|||
*/
|
||||
abstract class Input implements InputInterface, StreamableInputInterface
|
||||
{
|
||||
/**
|
||||
* @var InputDefinition
|
||||
*/
|
||||
protected $definition;
|
||||
protected $stream;
|
||||
protected $options = array();
|
||||
protected $arguments = array();
|
||||
protected $interactive = true;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param InputDefinition|null $definition A InputDefinition instance
|
||||
*/
|
||||
public function __construct(InputDefinition $definition = null)
|
||||
{
|
||||
if (null === $definition) {
|
||||
|
|
@ -80,7 +72,7 @@ abstract class Input implements InputInterface, StreamableInputInterface
|
|||
return !array_key_exists($argument, $givenArguments) && $definition->getArgument($argument)->isRequired();
|
||||
});
|
||||
|
||||
if (count($missingArguments) > 0) {
|
||||
if (\count($missingArguments) > 0) {
|
||||
throw new RuntimeException(sprintf('Not enough arguments (missing: "%s").', implode(', ', $missingArguments)));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
6
pfosten/vendor/symfony/console/Input/InputArgument.php
vendored
Executable file → Normal file
6
pfosten/vendor/symfony/console/Input/InputArgument.php
vendored
Executable file → Normal file
|
|
@ -31,8 +31,6 @@ class InputArgument
|
|||
private $description;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param string $name The argument name
|
||||
* @param int $mode The argument mode: self::REQUIRED or self::OPTIONAL
|
||||
* @param string $description A description text
|
||||
|
|
@ -44,7 +42,7 @@ class InputArgument
|
|||
{
|
||||
if (null === $mode) {
|
||||
$mode = self::OPTIONAL;
|
||||
} elseif (!is_int($mode) || $mode > 7 || $mode < 1) {
|
||||
} elseif (!\is_int($mode) || $mode > 7 || $mode < 1) {
|
||||
throw new InvalidArgumentException(sprintf('Argument mode "%s" is not valid.', $mode));
|
||||
}
|
||||
|
||||
|
|
@ -101,7 +99,7 @@ class InputArgument
|
|||
if ($this->isArray()) {
|
||||
if (null === $default) {
|
||||
$default = array();
|
||||
} elseif (!is_array($default)) {
|
||||
} elseif (!\is_array($default)) {
|
||||
throw new LogicException('A default value for an array argument must be an array.');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
0
pfosten/vendor/symfony/console/Input/InputAwareInterface.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Input/InputAwareInterface.php
vendored
Executable file → Normal file
22
pfosten/vendor/symfony/console/Input/InputDefinition.php
vendored
Executable file → Normal file
22
pfosten/vendor/symfony/console/Input/InputDefinition.php
vendored
Executable file → Normal file
|
|
@ -36,8 +36,6 @@ class InputDefinition
|
|||
private $shortcuts;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param array $definition An array of InputArgument and InputOption instance
|
||||
*/
|
||||
public function __construct(array $definition = array())
|
||||
|
|
@ -47,8 +45,6 @@ class InputDefinition
|
|||
|
||||
/**
|
||||
* Sets the definition of the input.
|
||||
*
|
||||
* @param array $definition The definition array
|
||||
*/
|
||||
public function setDefinition(array $definition)
|
||||
{
|
||||
|
|
@ -95,10 +91,6 @@ class InputDefinition
|
|||
}
|
||||
|
||||
/**
|
||||
* Adds an InputArgument object.
|
||||
*
|
||||
* @param InputArgument $argument An InputArgument object
|
||||
*
|
||||
* @throws LogicException When incorrect argument is given
|
||||
*/
|
||||
public function addArgument(InputArgument $argument)
|
||||
|
|
@ -143,7 +135,7 @@ class InputDefinition
|
|||
throw new InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name));
|
||||
}
|
||||
|
||||
$arguments = is_int($name) ? array_values($this->arguments) : $this->arguments;
|
||||
$arguments = \is_int($name) ? array_values($this->arguments) : $this->arguments;
|
||||
|
||||
return $arguments[$name];
|
||||
}
|
||||
|
|
@ -157,7 +149,7 @@ class InputDefinition
|
|||
*/
|
||||
public function hasArgument($name)
|
||||
{
|
||||
$arguments = is_int($name) ? array_values($this->arguments) : $this->arguments;
|
||||
$arguments = \is_int($name) ? array_values($this->arguments) : $this->arguments;
|
||||
|
||||
return isset($arguments[$name]);
|
||||
}
|
||||
|
|
@ -179,7 +171,7 @@ class InputDefinition
|
|||
*/
|
||||
public function getArgumentCount()
|
||||
{
|
||||
return $this->hasAnArrayArgument ? PHP_INT_MAX : count($this->arguments);
|
||||
return $this->hasAnArrayArgument ? PHP_INT_MAX : \count($this->arguments);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -232,10 +224,6 @@ class InputDefinition
|
|||
}
|
||||
|
||||
/**
|
||||
* Adds an InputOption object.
|
||||
*
|
||||
* @param InputOption $option An InputOption object
|
||||
*
|
||||
* @throws LogicException When option given already exist
|
||||
*/
|
||||
public function addOption(InputOption $option)
|
||||
|
|
@ -318,7 +306,7 @@ class InputDefinition
|
|||
/**
|
||||
* Gets an InputOption by shortcut.
|
||||
*
|
||||
* @param string $shortcut the Shortcut name
|
||||
* @param string $shortcut The Shortcut name
|
||||
*
|
||||
* @return InputOption An InputOption object
|
||||
*/
|
||||
|
|
@ -390,7 +378,7 @@ class InputDefinition
|
|||
}
|
||||
}
|
||||
|
||||
if (count($elements) && $this->getArguments()) {
|
||||
if (\count($elements) && $this->getArguments()) {
|
||||
$elements[] = '[--]';
|
||||
}
|
||||
|
||||
|
|
|
|||
8
pfosten/vendor/symfony/console/Input/InputInterface.php
vendored
Executable file → Normal file
8
pfosten/vendor/symfony/console/Input/InputInterface.php
vendored
Executable file → Normal file
|
|
@ -24,7 +24,7 @@ interface InputInterface
|
|||
/**
|
||||
* Returns the first argument from the raw parameters (not parsed).
|
||||
*
|
||||
* @return string The value of the first argument or null otherwise
|
||||
* @return string|null The value of the first argument or null otherwise
|
||||
*/
|
||||
public function getFirstArgument();
|
||||
|
||||
|
|
@ -33,6 +33,8 @@ interface InputInterface
|
|||
*
|
||||
* This method is to be used to introspect the input parameters
|
||||
* before they have been validated. It must be used carefully.
|
||||
* Does not necessarily return the correct result for short options
|
||||
* when multiple flags are combined in the same option.
|
||||
*
|
||||
* @param string|array $values The values to look for in the raw parameters (can be an array)
|
||||
* @param bool $onlyParams Only check real parameters, skip those following an end of options (--) signal
|
||||
|
|
@ -46,6 +48,8 @@ interface InputInterface
|
|||
*
|
||||
* This method is to be used to introspect the input parameters
|
||||
* before they have been validated. It must be used carefully.
|
||||
* Does not necessarily return the correct result for short options
|
||||
* when multiple flags are combined in the same option.
|
||||
*
|
||||
* @param string|array $values The value(s) to look for in the raw parameters (can be an array)
|
||||
* @param mixed $default The default value to return if no result is found
|
||||
|
|
@ -57,8 +61,6 @@ interface InputInterface
|
|||
|
||||
/**
|
||||
* Binds the current Input instance with the given arguments and options.
|
||||
*
|
||||
* @param InputDefinition $definition A InputDefinition instance
|
||||
*/
|
||||
public function bind(InputDefinition $definition);
|
||||
|
||||
|
|
|
|||
12
pfosten/vendor/symfony/console/Input/InputOption.php
vendored
Executable file → Normal file
12
pfosten/vendor/symfony/console/Input/InputOption.php
vendored
Executable file → Normal file
|
|
@ -33,8 +33,6 @@ class InputOption
|
|||
private $description;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param string $name The option name
|
||||
* @param string|array $shortcut The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts
|
||||
* @param int $mode The option mode: One of the VALUE_* constants
|
||||
|
|
@ -58,7 +56,7 @@ class InputOption
|
|||
}
|
||||
|
||||
if (null !== $shortcut) {
|
||||
if (is_array($shortcut)) {
|
||||
if (\is_array($shortcut)) {
|
||||
$shortcut = implode('|', $shortcut);
|
||||
}
|
||||
$shortcuts = preg_split('{(\|)-?}', ltrim($shortcut, '-'));
|
||||
|
|
@ -72,7 +70,7 @@ class InputOption
|
|||
|
||||
if (null === $mode) {
|
||||
$mode = self::VALUE_NONE;
|
||||
} elseif (!is_int($mode) || $mode > 15 || $mode < 1) {
|
||||
} elseif (!\is_int($mode) || $mode > 15 || $mode < 1) {
|
||||
throw new InvalidArgumentException(sprintf('Option mode "%s" is not valid.', $mode));
|
||||
}
|
||||
|
||||
|
|
@ -164,7 +162,7 @@ class InputOption
|
|||
if ($this->isArray()) {
|
||||
if (null === $default) {
|
||||
$default = array();
|
||||
} elseif (!is_array($default)) {
|
||||
} elseif (!\is_array($default)) {
|
||||
throw new LogicException('A default value for an array option must be an array.');
|
||||
}
|
||||
}
|
||||
|
|
@ -195,11 +193,9 @@ class InputOption
|
|||
/**
|
||||
* Checks whether the given option equals this one.
|
||||
*
|
||||
* @param InputOption $option option to compare
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function equals(InputOption $option)
|
||||
public function equals(self $option)
|
||||
{
|
||||
return $option->getName() === $this->getName()
|
||||
&& $option->getShortcut() === $this->getShortcut()
|
||||
|
|
|
|||
0
pfosten/vendor/symfony/console/Input/StreamableInputInterface.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Input/StreamableInputInterface.php
vendored
Executable file → Normal file
12
pfosten/vendor/symfony/console/Input/StringInput.php
vendored
Executable file → Normal file
12
pfosten/vendor/symfony/console/Input/StringInput.php
vendored
Executable file → Normal file
|
|
@ -28,9 +28,7 @@ class StringInput extends ArgvInput
|
|||
const REGEX_QUOTED_STRING = '(?:"([^"\\\\]*(?:\\\\.[^"\\\\]*)*)"|\'([^\'\\\\]*(?:\\\\.[^\'\\\\]*)*)\')';
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param string $input An array of parameters from the CLI (in the argv format)
|
||||
* @param string $input A string representing the parameters from the CLI
|
||||
*/
|
||||
public function __construct($input)
|
||||
{
|
||||
|
|
@ -51,14 +49,14 @@ class StringInput extends ArgvInput
|
|||
private function tokenize($input)
|
||||
{
|
||||
$tokens = array();
|
||||
$length = strlen($input);
|
||||
$length = \strlen($input);
|
||||
$cursor = 0;
|
||||
while ($cursor < $length) {
|
||||
if (preg_match('/\s+/A', $input, $match, null, $cursor)) {
|
||||
} elseif (preg_match('/([^="\'\s]+?)(=?)('.self::REGEX_QUOTED_STRING.'+)/A', $input, $match, null, $cursor)) {
|
||||
$tokens[] = $match[1].$match[2].stripcslashes(str_replace(array('"\'', '\'"', '\'\'', '""'), '', substr($match[3], 1, strlen($match[3]) - 2)));
|
||||
$tokens[] = $match[1].$match[2].stripcslashes(str_replace(array('"\'', '\'"', '\'\'', '""'), '', substr($match[3], 1, \strlen($match[3]) - 2)));
|
||||
} elseif (preg_match('/'.self::REGEX_QUOTED_STRING.'/A', $input, $match, null, $cursor)) {
|
||||
$tokens[] = stripcslashes(substr($match[0], 1, strlen($match[0]) - 2));
|
||||
$tokens[] = stripcslashes(substr($match[0], 1, \strlen($match[0]) - 2));
|
||||
} elseif (preg_match('/'.self::REGEX_STRING.'/A', $input, $match, null, $cursor)) {
|
||||
$tokens[] = stripcslashes($match[1]);
|
||||
} else {
|
||||
|
|
@ -66,7 +64,7 @@ class StringInput extends ArgvInput
|
|||
throw new InvalidArgumentException(sprintf('Unable to parse input near "... %s ..."', substr($input, $cursor, 10)));
|
||||
}
|
||||
|
||||
$cursor += strlen($match[0]);
|
||||
$cursor += \strlen($match[0]);
|
||||
}
|
||||
|
||||
return $tokens;
|
||||
|
|
|
|||
2
pfosten/vendor/symfony/console/LICENSE
vendored
Executable file → Normal file
2
pfosten/vendor/symfony/console/LICENSE
vendored
Executable file → Normal file
|
|
@ -1,4 +1,4 @@
|
|||
Copyright (c) 2004-2017 Fabien Potencier
|
||||
Copyright (c) 2004-2018 Fabien Potencier
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
|
|
|||
40
pfosten/vendor/symfony/console/Logger/ConsoleLogger.php
vendored
Executable file → Normal file
40
pfosten/vendor/symfony/console/Logger/ConsoleLogger.php
vendored
Executable file → Normal file
|
|
@ -14,8 +14,8 @@ namespace Symfony\Component\Console\Logger;
|
|||
use Psr\Log\AbstractLogger;
|
||||
use Psr\Log\InvalidArgumentException;
|
||||
use Psr\Log\LogLevel;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Output\ConsoleOutputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
/**
|
||||
* PSR-3 compliant console logger.
|
||||
|
|
@ -29,13 +29,7 @@ class ConsoleLogger extends AbstractLogger
|
|||
const INFO = 'info';
|
||||
const ERROR = 'error';
|
||||
|
||||
/**
|
||||
* @var OutputInterface
|
||||
*/
|
||||
private $output;
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
private $verbosityLevelMap = array(
|
||||
LogLevel::EMERGENCY => OutputInterface::VERBOSITY_NORMAL,
|
||||
LogLevel::ALERT => OutputInterface::VERBOSITY_NORMAL,
|
||||
|
|
@ -46,9 +40,6 @@ class ConsoleLogger extends AbstractLogger
|
|||
LogLevel::INFO => OutputInterface::VERBOSITY_VERY_VERBOSE,
|
||||
LogLevel::DEBUG => OutputInterface::VERBOSITY_DEBUG,
|
||||
);
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
private $formatLevelMap = array(
|
||||
LogLevel::EMERGENCY => self::ERROR,
|
||||
LogLevel::ALERT => self::ERROR,
|
||||
|
|
@ -61,11 +52,6 @@ class ConsoleLogger extends AbstractLogger
|
|||
);
|
||||
private $errored = false;
|
||||
|
||||
/**
|
||||
* @param OutputInterface $output
|
||||
* @param array $verbosityLevelMap
|
||||
* @param array $formatLevelMap
|
||||
*/
|
||||
public function __construct(OutputInterface $output, array $verbosityLevelMap = array(), array $formatLevelMap = array())
|
||||
{
|
||||
$this->output = $output;
|
||||
|
|
@ -85,7 +71,7 @@ class ConsoleLogger extends AbstractLogger
|
|||
$output = $this->output;
|
||||
|
||||
// Write to the error output if necessary and available
|
||||
if ($this->formatLevelMap[$level] === self::ERROR) {
|
||||
if (self::ERROR === $this->formatLevelMap[$level]) {
|
||||
if ($this->output instanceof ConsoleOutputInterface) {
|
||||
$output = $output->getErrorOutput();
|
||||
}
|
||||
|
|
@ -101,6 +87,8 @@ class ConsoleLogger extends AbstractLogger
|
|||
|
||||
/**
|
||||
* Returns true when any messages have been logged at error levels.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function hasErrored()
|
||||
{
|
||||
|
|
@ -119,15 +107,23 @@ class ConsoleLogger extends AbstractLogger
|
|||
*/
|
||||
private function interpolate($message, array $context)
|
||||
{
|
||||
// build a replacement array with braces around the context keys
|
||||
$replace = array();
|
||||
if (false === strpos($message, '{')) {
|
||||
return $message;
|
||||
}
|
||||
|
||||
$replacements = array();
|
||||
foreach ($context as $key => $val) {
|
||||
if (!is_array($val) && (!is_object($val) || method_exists($val, '__toString'))) {
|
||||
$replace[sprintf('{%s}', $key)] = $val;
|
||||
if (null === $val || is_scalar($val) || (\is_object($val) && method_exists($val, '__toString'))) {
|
||||
$replacements["{{$key}}"] = $val;
|
||||
} elseif ($val instanceof \DateTimeInterface) {
|
||||
$replacements["{{$key}}"] = $val->format(\DateTime::RFC3339);
|
||||
} elseif (\is_object($val)) {
|
||||
$replacements["{{$key}}"] = '[object '.\get_class($val).']';
|
||||
} else {
|
||||
$replacements["{{$key}}"] = '['.\gettype($val).']';
|
||||
}
|
||||
}
|
||||
|
||||
// interpolate replacement values into the message and return
|
||||
return strtr($message, $replace);
|
||||
return strtr($message, $replacements);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
3
pfosten/vendor/symfony/console/Output/BufferedOutput.php
vendored
Executable file → Normal file
3
pfosten/vendor/symfony/console/Output/BufferedOutput.php
vendored
Executable file → Normal file
|
|
@ -16,9 +16,6 @@ namespace Symfony\Component\Console\Output;
|
|||
*/
|
||||
class BufferedOutput extends Output
|
||||
{
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $buffer = '';
|
||||
|
||||
/**
|
||||
|
|
|
|||
7
pfosten/vendor/symfony/console/Output/ConsoleOutput.php
vendored
Executable file → Normal file
7
pfosten/vendor/symfony/console/Output/ConsoleOutput.php
vendored
Executable file → Normal file
|
|
@ -29,14 +29,9 @@ use Symfony\Component\Console\Formatter\OutputFormatterInterface;
|
|||
*/
|
||||
class ConsoleOutput extends StreamOutput implements ConsoleOutputInterface
|
||||
{
|
||||
/**
|
||||
* @var StreamOutput
|
||||
*/
|
||||
private $stderr;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param int $verbosity The verbosity level (one of the VERBOSITY constants in OutputInterface)
|
||||
* @param bool|null $decorated Whether to decorate messages (null for auto-guessing)
|
||||
* @param OutputFormatterInterface|null $formatter Output formatter instance (null to use default OutputFormatter)
|
||||
|
|
@ -127,7 +122,7 @@ class ConsoleOutput extends StreamOutput implements ConsoleOutputInterface
|
|||
private function isRunningOS400()
|
||||
{
|
||||
$checks = array(
|
||||
function_exists('php_uname') ? php_uname('s') : '',
|
||||
\function_exists('php_uname') ? php_uname('s') : '',
|
||||
getenv('OSTYPE'),
|
||||
PHP_OS,
|
||||
);
|
||||
|
|
|
|||
5
pfosten/vendor/symfony/console/Output/ConsoleOutputInterface.php
vendored
Executable file → Normal file
5
pfosten/vendor/symfony/console/Output/ConsoleOutputInterface.php
vendored
Executable file → Normal file
|
|
@ -26,10 +26,5 @@ interface ConsoleOutputInterface extends OutputInterface
|
|||
*/
|
||||
public function getErrorOutput();
|
||||
|
||||
/**
|
||||
* Sets the OutputInterface used for errors.
|
||||
*
|
||||
* @param OutputInterface $error
|
||||
*/
|
||||
public function setErrorOutput(OutputInterface $error);
|
||||
}
|
||||
|
|
|
|||
0
pfosten/vendor/symfony/console/Output/NullOutput.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Output/NullOutput.php
vendored
Executable file → Normal file
4
pfosten/vendor/symfony/console/Output/Output.php
vendored
Executable file → Normal file
4
pfosten/vendor/symfony/console/Output/Output.php
vendored
Executable file → Normal file
|
|
@ -11,8 +11,8 @@
|
|||
|
||||
namespace Symfony\Component\Console\Output;
|
||||
|
||||
use Symfony\Component\Console\Formatter\OutputFormatterInterface;
|
||||
use Symfony\Component\Console\Formatter\OutputFormatter;
|
||||
use Symfony\Component\Console\Formatter\OutputFormatterInterface;
|
||||
|
||||
/**
|
||||
* Base class for output classes.
|
||||
|
|
@ -33,8 +33,6 @@ abstract class Output implements OutputInterface
|
|||
private $formatter;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param int $verbosity The verbosity level (one of the VERBOSITY constants in OutputInterface)
|
||||
* @param bool $decorated Whether to decorate messages
|
||||
* @param OutputFormatterInterface|null $formatter Output formatter instance (null to use default OutputFormatter)
|
||||
|
|
|
|||
9
pfosten/vendor/symfony/console/Output/OutputInterface.php
vendored
Executable file → Normal file
9
pfosten/vendor/symfony/console/Output/OutputInterface.php
vendored
Executable file → Normal file
|
|
@ -33,7 +33,7 @@ interface OutputInterface
|
|||
/**
|
||||
* Writes a message to the output.
|
||||
*
|
||||
* @param string|array $messages The message as an array of lines or a single string
|
||||
* @param string|array $messages The message as an array of strings or a single string
|
||||
* @param bool $newline Whether to add a newline
|
||||
* @param int $options A bitmask of options (one of the OUTPUT or VERBOSITY constants), 0 is considered the same as self::OUTPUT_NORMAL | self::VERBOSITY_NORMAL
|
||||
*/
|
||||
|
|
@ -42,7 +42,7 @@ interface OutputInterface
|
|||
/**
|
||||
* Writes a message to the output and adds a newline at the end.
|
||||
*
|
||||
* @param string|array $messages The message as an array of lines of a single string
|
||||
* @param string|array $messages The message as an array of strings or a single string
|
||||
* @param int $options A bitmask of options (one of the OUTPUT or VERBOSITY constants), 0 is considered the same as self::OUTPUT_NORMAL | self::VERBOSITY_NORMAL
|
||||
*/
|
||||
public function writeln($messages, $options = 0);
|
||||
|
|
@ -103,11 +103,6 @@ interface OutputInterface
|
|||
*/
|
||||
public function isDecorated();
|
||||
|
||||
/**
|
||||
* Sets output formatter.
|
||||
*
|
||||
* @param OutputFormatterInterface $formatter
|
||||
*/
|
||||
public function setFormatter(OutputFormatterInterface $formatter);
|
||||
|
||||
/**
|
||||
|
|
|
|||
33
pfosten/vendor/symfony/console/Output/StreamOutput.php
vendored
Executable file → Normal file
33
pfosten/vendor/symfony/console/Output/StreamOutput.php
vendored
Executable file → Normal file
|
|
@ -33,8 +33,6 @@ class StreamOutput extends Output
|
|||
private $stream;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param resource $stream A stream resource
|
||||
* @param int $verbosity The verbosity level (one of the VERBOSITY constants in OutputInterface)
|
||||
* @param bool|null $decorated Whether to decorate messages (null for auto-guessing)
|
||||
|
|
@ -44,7 +42,7 @@ class StreamOutput extends Output
|
|||
*/
|
||||
public function __construct($stream, $verbosity = self::VERBOSITY_NORMAL, $decorated = null, OutputFormatterInterface $formatter = null)
|
||||
{
|
||||
if (!is_resource($stream) || 'stream' !== get_resource_type($stream)) {
|
||||
if (!\is_resource($stream) || 'stream' !== get_resource_type($stream)) {
|
||||
throw new InvalidArgumentException('The StreamOutput class needs a stream as its first argument.');
|
||||
}
|
||||
|
||||
|
|
@ -85,21 +83,38 @@ class StreamOutput extends Output
|
|||
*
|
||||
* Colorization is disabled if not supported by the stream:
|
||||
*
|
||||
* - Windows != 10.0.10586 without Ansicon, ConEmu or Mintty
|
||||
* - non tty consoles
|
||||
* This is tricky on Windows, because Cygwin, Msys2 etc emulate pseudo
|
||||
* terminals via named pipes, so we can only check the environment.
|
||||
*
|
||||
* Reference: Composer\XdebugHandler\Process::supportsColor
|
||||
* https://github.com/composer/xdebug-handler
|
||||
*
|
||||
* @return bool true if the stream supports colorization, false otherwise
|
||||
*/
|
||||
protected function hasColorSupport()
|
||||
{
|
||||
if (DIRECTORY_SEPARATOR === '\\') {
|
||||
return
|
||||
'10.0.10586' === PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD
|
||||
if ('Hyper' === getenv('TERM_PROGRAM')) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (\DIRECTORY_SEPARATOR === '\\') {
|
||||
return (\function_exists('sapi_windows_vt100_support')
|
||||
&& @sapi_windows_vt100_support($this->stream))
|
||||
|| false !== getenv('ANSICON')
|
||||
|| 'ON' === getenv('ConEmuANSI')
|
||||
|| 'xterm' === getenv('TERM');
|
||||
}
|
||||
|
||||
return function_exists('posix_isatty') && @posix_isatty($this->stream);
|
||||
if (\function_exists('stream_isatty')) {
|
||||
return @stream_isatty($this->stream);
|
||||
}
|
||||
|
||||
if (\function_exists('posix_isatty')) {
|
||||
return @posix_isatty($this->stream);
|
||||
}
|
||||
|
||||
$stat = @fstat($this->stream);
|
||||
// Check if formatted mode is S_IFCHR
|
||||
return $stat ? 0020000 === ($stat['mode'] & 0170000) : false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
4
pfosten/vendor/symfony/console/Question/ChoiceQuestion.php
vendored
Executable file → Normal file
4
pfosten/vendor/symfony/console/Question/ChoiceQuestion.php
vendored
Executable file → Normal file
|
|
@ -26,8 +26,6 @@ class ChoiceQuestion extends Question
|
|||
private $errorMessage = 'Value "%s" is invalid';
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param string $question The question to ask to the user
|
||||
* @param array $choices The list of available choices
|
||||
* @param mixed $default The default answer to return
|
||||
|
|
@ -158,7 +156,7 @@ class ChoiceQuestion extends Question
|
|||
}
|
||||
}
|
||||
|
||||
if (count($results) > 1) {
|
||||
if (\count($results) > 1) {
|
||||
throw new InvalidArgumentException(sprintf('The provided answer is ambiguous. Value should be one of %s.', implode(' or ', $results)));
|
||||
}
|
||||
|
||||
|
|
|
|||
4
pfosten/vendor/symfony/console/Question/ConfirmationQuestion.php
vendored
Executable file → Normal file
4
pfosten/vendor/symfony/console/Question/ConfirmationQuestion.php
vendored
Executable file → Normal file
|
|
@ -21,8 +21,6 @@ class ConfirmationQuestion extends Question
|
|||
private $trueAnswerRegex;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param string $question The question to ask to the user
|
||||
* @param bool $default The default answer to return, true or false
|
||||
* @param string $trueAnswerRegex A regex to match the "yes" answer
|
||||
|
|
@ -46,7 +44,7 @@ class ConfirmationQuestion extends Question
|
|||
$regex = $this->trueAnswerRegex;
|
||||
|
||||
return function ($answer) use ($default, $regex) {
|
||||
if (is_bool($answer)) {
|
||||
if (\is_bool($answer)) {
|
||||
return $answer;
|
||||
}
|
||||
|
||||
|
|
|
|||
18
pfosten/vendor/symfony/console/Question/Question.php
vendored
Executable file → Normal file
18
pfosten/vendor/symfony/console/Question/Question.php
vendored
Executable file → Normal file
|
|
@ -31,8 +31,6 @@ class Question
|
|||
private $normalizer;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param string $question The question to ask to the user
|
||||
* @param mixed $default The default answer to return if the user enters nothing
|
||||
*/
|
||||
|
|
@ -119,7 +117,7 @@ class Question
|
|||
/**
|
||||
* Gets values for the autocompleter.
|
||||
*
|
||||
* @return null|array|\Traversable
|
||||
* @return null|iterable
|
||||
*/
|
||||
public function getAutocompleterValues()
|
||||
{
|
||||
|
|
@ -129,7 +127,7 @@ class Question
|
|||
/**
|
||||
* Sets values for the autocompleter.
|
||||
*
|
||||
* @param null|array|\Traversable $values
|
||||
* @param null|iterable $values
|
||||
*
|
||||
* @return $this
|
||||
*
|
||||
|
|
@ -138,14 +136,12 @@ class Question
|
|||
*/
|
||||
public function setAutocompleterValues($values)
|
||||
{
|
||||
if (is_array($values)) {
|
||||
if (\is_array($values)) {
|
||||
$values = $this->isAssoc($values) ? array_merge(array_keys($values), array_values($values)) : array_values($values);
|
||||
}
|
||||
|
||||
if (null !== $values && !is_array($values)) {
|
||||
if (!$values instanceof \Traversable || !$values instanceof \Countable) {
|
||||
throw new InvalidArgumentException('Autocompleter values can be either an array, `null` or an object implementing both `Countable` and `Traversable` interfaces.');
|
||||
}
|
||||
if (null !== $values && !\is_array($values) && !$values instanceof \Traversable) {
|
||||
throw new InvalidArgumentException('Autocompleter values can be either an array, `null` or a `Traversable` object.');
|
||||
}
|
||||
|
||||
if ($this->hidden) {
|
||||
|
|
@ -190,7 +186,7 @@ class Question
|
|||
*
|
||||
* @return $this
|
||||
*
|
||||
* @throws InvalidArgumentException In case the number of attempts is invalid.
|
||||
* @throws InvalidArgumentException in case the number of attempts is invalid
|
||||
*/
|
||||
public function setMaxAttempts($attempts)
|
||||
{
|
||||
|
|
@ -245,6 +241,6 @@ class Question
|
|||
|
||||
protected function isAssoc($array)
|
||||
{
|
||||
return (bool) count(array_filter(array_keys($array), 'is_string'));
|
||||
return (bool) \count(array_filter(array_keys($array), 'is_string'));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
0
pfosten/vendor/symfony/console/README.md
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/README.md
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Resources/bin/hiddeninput.exe
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Resources/bin/hiddeninput.exe
vendored
Executable file → Normal file
5
pfosten/vendor/symfony/console/Style/OutputStyle.php
vendored
Executable file → Normal file
5
pfosten/vendor/symfony/console/Style/OutputStyle.php
vendored
Executable file → Normal file
|
|
@ -13,8 +13,8 @@ namespace Symfony\Component\Console\Style;
|
|||
|
||||
use Symfony\Component\Console\Formatter\OutputFormatterInterface;
|
||||
use Symfony\Component\Console\Helper\ProgressBar;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Output\ConsoleOutputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
/**
|
||||
* Decorates output to add console style guide helpers.
|
||||
|
|
@ -25,9 +25,6 @@ abstract class OutputStyle implements OutputInterface, StyleInterface
|
|||
{
|
||||
private $output;
|
||||
|
||||
/**
|
||||
* @param OutputInterface $output
|
||||
*/
|
||||
public function __construct(OutputInterface $output)
|
||||
{
|
||||
$this->output = $output;
|
||||
|
|
|
|||
11
pfosten/vendor/symfony/console/Style/StyleInterface.php
vendored
Executable file → Normal file
11
pfosten/vendor/symfony/console/Style/StyleInterface.php
vendored
Executable file → Normal file
|
|
@ -34,8 +34,6 @@ interface StyleInterface
|
|||
|
||||
/**
|
||||
* Formats a list.
|
||||
*
|
||||
* @param array $elements
|
||||
*/
|
||||
public function listing(array $elements);
|
||||
|
||||
|
|
@ -83,9 +81,6 @@ interface StyleInterface
|
|||
|
||||
/**
|
||||
* Formats a table.
|
||||
*
|
||||
* @param array $headers
|
||||
* @param array $rows
|
||||
*/
|
||||
public function table(array $headers, array $rows);
|
||||
|
||||
|
|
@ -96,7 +91,7 @@ interface StyleInterface
|
|||
* @param string|null $default
|
||||
* @param callable|null $validator
|
||||
*
|
||||
* @return string
|
||||
* @return mixed
|
||||
*/
|
||||
public function ask($question, $default = null, $validator = null);
|
||||
|
||||
|
|
@ -106,7 +101,7 @@ interface StyleInterface
|
|||
* @param string $question
|
||||
* @param callable|null $validator
|
||||
*
|
||||
* @return string
|
||||
* @return mixed
|
||||
*/
|
||||
public function askHidden($question, $validator = null);
|
||||
|
||||
|
|
@ -127,7 +122,7 @@ interface StyleInterface
|
|||
* @param array $choices
|
||||
* @param string|int|null $default
|
||||
*
|
||||
* @return string
|
||||
* @return mixed
|
||||
*/
|
||||
public function choice($question, array $choices, $default = null);
|
||||
|
||||
|
|
|
|||
20
pfosten/vendor/symfony/console/Style/SymfonyStyle.php
vendored
Executable file → Normal file
20
pfosten/vendor/symfony/console/Style/SymfonyStyle.php
vendored
Executable file → Normal file
|
|
@ -40,17 +40,13 @@ class SymfonyStyle extends OutputStyle
|
|||
private $lineLength;
|
||||
private $bufferedOutput;
|
||||
|
||||
/**
|
||||
* @param InputInterface $input
|
||||
* @param OutputInterface $output
|
||||
*/
|
||||
public function __construct(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$this->input = $input;
|
||||
$this->bufferedOutput = new BufferedOutput($output->getVerbosity(), false, clone $output->getFormatter());
|
||||
// Windows cmd wraps lines as soon as the terminal width is reached, whether there are following chars or not.
|
||||
$width = (new Terminal())->getWidth() ?: self::MAX_LINE_LENGTH;
|
||||
$this->lineLength = min($width - (int) (DIRECTORY_SEPARATOR === '\\'), self::MAX_LINE_LENGTH);
|
||||
$this->lineLength = min($width - (int) (\DIRECTORY_SEPARATOR === '\\'), self::MAX_LINE_LENGTH);
|
||||
|
||||
parent::__construct($output);
|
||||
}
|
||||
|
|
@ -67,7 +63,7 @@ class SymfonyStyle extends OutputStyle
|
|||
*/
|
||||
public function block($messages, $type = null, $style = null, $prefix = ' ', $padding = false, $escape = true)
|
||||
{
|
||||
$messages = is_array($messages) ? array_values($messages) : array($messages);
|
||||
$messages = \is_array($messages) ? array_values($messages) : array($messages);
|
||||
|
||||
$this->autoPrependBlock();
|
||||
$this->writeln($this->createBlock($messages, $type, $style, $prefix, $padding, $escape));
|
||||
|
|
@ -121,7 +117,7 @@ class SymfonyStyle extends OutputStyle
|
|||
{
|
||||
$this->autoPrependText();
|
||||
|
||||
$messages = is_array($message) ? array_values($message) : array($message);
|
||||
$messages = \is_array($message) ? array_values($message) : array($message);
|
||||
foreach ($messages as $message) {
|
||||
$this->writeln(sprintf(' %s', $message));
|
||||
}
|
||||
|
|
@ -273,7 +269,7 @@ class SymfonyStyle extends OutputStyle
|
|||
{
|
||||
$progressBar = parent::createProgressBar($max);
|
||||
|
||||
if ('\\' !== DIRECTORY_SEPARATOR) {
|
||||
if ('\\' !== \DIRECTORY_SEPARATOR || 'Hyper' === getenv('TERM_PROGRAM')) {
|
||||
$progressBar->setEmptyBarCharacter('░'); // light shade character \u2591
|
||||
$progressBar->setProgressCharacter('');
|
||||
$progressBar->setBarCharacter('▓'); // dark shade character \u2593
|
||||
|
|
@ -283,9 +279,7 @@ class SymfonyStyle extends OutputStyle
|
|||
}
|
||||
|
||||
/**
|
||||
* @param Question $question
|
||||
*
|
||||
* @return string
|
||||
* @return mixed
|
||||
*/
|
||||
public function askQuestion(Question $question)
|
||||
{
|
||||
|
|
@ -393,7 +387,7 @@ class SymfonyStyle extends OutputStyle
|
|||
|
||||
if (null !== $type) {
|
||||
$type = sprintf('[%s] ', $type);
|
||||
$indentLength = strlen($type);
|
||||
$indentLength = \strlen($type);
|
||||
$lineIndentation = str_repeat(' ', $indentLength);
|
||||
}
|
||||
|
||||
|
|
@ -405,7 +399,7 @@ class SymfonyStyle extends OutputStyle
|
|||
|
||||
$lines = array_merge($lines, explode(PHP_EOL, wordwrap($message, $this->lineLength - $prefixLength - $indentLength, PHP_EOL, true)));
|
||||
|
||||
if (count($messages) > 1 && $key < count($messages) - 1) {
|
||||
if (\count($messages) > 1 && $key < \count($messages) - 1) {
|
||||
$lines[] = '';
|
||||
}
|
||||
}
|
||||
|
|
|
|||
10
pfosten/vendor/symfony/console/Terminal.php
vendored
Executable file → Normal file
10
pfosten/vendor/symfony/console/Terminal.php
vendored
Executable file → Normal file
|
|
@ -56,7 +56,7 @@ class Terminal
|
|||
|
||||
private static function initDimensions()
|
||||
{
|
||||
if ('\\' === DIRECTORY_SEPARATOR) {
|
||||
if ('\\' === \DIRECTORY_SEPARATOR) {
|
||||
if (preg_match('/^(\d+)x(\d+)(?: \((\d+)x(\d+)\))?$/', trim(getenv('ANSICON')), $matches)) {
|
||||
// extract [w, H] from "wxh (WxH)"
|
||||
// or [w, h] from "wxh"
|
||||
|
|
@ -87,7 +87,7 @@ class Terminal
|
|||
*/
|
||||
private static function getConsoleMode()
|
||||
{
|
||||
if (!function_exists('proc_open')) {
|
||||
if (!\function_exists('proc_open')) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -96,7 +96,7 @@ class Terminal
|
|||
2 => array('pipe', 'w'),
|
||||
);
|
||||
$process = proc_open('mode CON', $descriptorspec, $pipes, null, null, array('suppress_errors' => true));
|
||||
if (is_resource($process)) {
|
||||
if (\is_resource($process)) {
|
||||
$info = stream_get_contents($pipes[1]);
|
||||
fclose($pipes[1]);
|
||||
fclose($pipes[2]);
|
||||
|
|
@ -115,7 +115,7 @@ class Terminal
|
|||
*/
|
||||
private static function getSttyColumns()
|
||||
{
|
||||
if (!function_exists('proc_open')) {
|
||||
if (!\function_exists('proc_open')) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -125,7 +125,7 @@ class Terminal
|
|||
);
|
||||
|
||||
$process = proc_open('stty -a | grep columns', $descriptorspec, $pipes, null, null, array('suppress_errors' => true));
|
||||
if (is_resource($process)) {
|
||||
if (\is_resource($process)) {
|
||||
$info = stream_get_contents($pipes[1]);
|
||||
fclose($pipes[1]);
|
||||
fclose($pipes[2]);
|
||||
|
|
|
|||
0
pfosten/vendor/symfony/console/Tester/ApplicationTester.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Tester/ApplicationTester.php
vendored
Executable file → Normal file
11
pfosten/vendor/symfony/console/Tester/CommandTester.php
vendored
Executable file → Normal file
11
pfosten/vendor/symfony/console/Tester/CommandTester.php
vendored
Executable file → Normal file
|
|
@ -13,9 +13,9 @@ namespace Symfony\Component\Console\Tester;
|
|||
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Input\ArrayInput;
|
||||
use Symfony\Component\Console\Output\StreamOutput;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Output\StreamOutput;
|
||||
|
||||
/**
|
||||
* Eases the testing of console commands.
|
||||
|
|
@ -31,11 +31,6 @@ class CommandTester
|
|||
private $inputs = array();
|
||||
private $statusCode;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param Command $command A Command instance to test
|
||||
*/
|
||||
public function __construct(Command $command)
|
||||
{
|
||||
$this->command = $command;
|
||||
|
|
@ -137,8 +132,8 @@ class CommandTester
|
|||
/**
|
||||
* Sets the user inputs.
|
||||
*
|
||||
* @param array An array of strings representing each input
|
||||
* passed to the command input stream.
|
||||
* @param array $inputs An array of strings representing each input
|
||||
* passed to the command input stream
|
||||
*
|
||||
* @return CommandTester
|
||||
*/
|
||||
|
|
|
|||
261
pfosten/vendor/symfony/console/Tests/ApplicationTest.php
vendored
Executable file → Normal file
261
pfosten/vendor/symfony/console/Tests/ApplicationTest.php
vendored
Executable file → Normal file
|
|
@ -13,24 +13,28 @@ namespace Symfony\Component\Console\Tests;
|
|||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Component\Console\Application;
|
||||
use Symfony\Component\Console\Helper\HelperSet;
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\CommandLoader\FactoryCommandLoader;
|
||||
use Symfony\Component\Console\DependencyInjection\AddConsoleCommandPass;
|
||||
use Symfony\Component\Console\Event\ConsoleCommandEvent;
|
||||
use Symfony\Component\Console\Event\ConsoleErrorEvent;
|
||||
use Symfony\Component\Console\Event\ConsoleExceptionEvent;
|
||||
use Symfony\Component\Console\Event\ConsoleTerminateEvent;
|
||||
use Symfony\Component\Console\Exception\CommandNotFoundException;
|
||||
use Symfony\Component\Console\Helper\FormatterHelper;
|
||||
use Symfony\Component\Console\Helper\HelperSet;
|
||||
use Symfony\Component\Console\Input\ArgvInput;
|
||||
use Symfony\Component\Console\Input\ArrayInput;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Input\InputDefinition;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Output\NullOutput;
|
||||
use Symfony\Component\Console\Output\Output;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Output\StreamOutput;
|
||||
use Symfony\Component\Console\Tester\ApplicationTester;
|
||||
use Symfony\Component\Console\Event\ConsoleCommandEvent;
|
||||
use Symfony\Component\Console\Event\ConsoleErrorEvent;
|
||||
use Symfony\Component\Console\Event\ConsoleExceptionEvent;
|
||||
use Symfony\Component\Console\Event\ConsoleTerminateEvent;
|
||||
use Symfony\Component\Console\Exception\CommandNotFoundException;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcher;
|
||||
|
||||
class ApplicationTest extends TestCase
|
||||
|
|
@ -41,15 +45,20 @@ class ApplicationTest extends TestCase
|
|||
{
|
||||
self::$fixturesPath = realpath(__DIR__.'/Fixtures/');
|
||||
require_once self::$fixturesPath.'/FooCommand.php';
|
||||
require_once self::$fixturesPath.'/FooOptCommand.php';
|
||||
require_once self::$fixturesPath.'/Foo1Command.php';
|
||||
require_once self::$fixturesPath.'/Foo2Command.php';
|
||||
require_once self::$fixturesPath.'/Foo3Command.php';
|
||||
require_once self::$fixturesPath.'/Foo4Command.php';
|
||||
require_once self::$fixturesPath.'/Foo5Command.php';
|
||||
require_once self::$fixturesPath.'/FooSameCaseUppercaseCommand.php';
|
||||
require_once self::$fixturesPath.'/FooSameCaseLowercaseCommand.php';
|
||||
require_once self::$fixturesPath.'/FoobarCommand.php';
|
||||
require_once self::$fixturesPath.'/BarBucCommand.php';
|
||||
require_once self::$fixturesPath.'/FooSubnamespaced1Command.php';
|
||||
require_once self::$fixturesPath.'/FooSubnamespaced2Command.php';
|
||||
require_once self::$fixturesPath.'/TestTiti.php';
|
||||
require_once self::$fixturesPath.'/TestToto.php';
|
||||
}
|
||||
|
||||
protected function normalizeLineBreaks($text)
|
||||
|
|
@ -114,6 +123,25 @@ class ApplicationTest extends TestCase
|
|||
$this->assertCount(1, $commands, '->all() takes a namespace as its first argument');
|
||||
}
|
||||
|
||||
public function testAllWithCommandLoader()
|
||||
{
|
||||
$application = new Application();
|
||||
$commands = $application->all();
|
||||
$this->assertInstanceOf('Symfony\\Component\\Console\\Command\\HelpCommand', $commands['help'], '->all() returns the registered commands');
|
||||
|
||||
$application->add(new \FooCommand());
|
||||
$commands = $application->all('foo');
|
||||
$this->assertCount(1, $commands, '->all() takes a namespace as its first argument');
|
||||
|
||||
$application->setCommandLoader(new FactoryCommandLoader(array(
|
||||
'foo:bar1' => function () { return new \Foo1Command(); },
|
||||
)));
|
||||
$commands = $application->all('foo');
|
||||
$this->assertCount(2, $commands, '->all() takes a namespace as its first argument');
|
||||
$this->assertInstanceOf(\FooCommand::class, $commands['foo:bar'], '->all() returns the registered commands');
|
||||
$this->assertInstanceOf(\Foo1Command::class, $commands['foo:bar1'], '->all() returns the registered commands');
|
||||
}
|
||||
|
||||
public function testRegister()
|
||||
{
|
||||
$application = new Application();
|
||||
|
|
@ -166,6 +194,30 @@ class ApplicationTest extends TestCase
|
|||
$this->assertInstanceOf('Symfony\Component\Console\Command\HelpCommand', $command, '->get() returns the help command if --help is provided as the input');
|
||||
}
|
||||
|
||||
public function testHasGetWithCommandLoader()
|
||||
{
|
||||
$application = new Application();
|
||||
$this->assertTrue($application->has('list'), '->has() returns true if a named command is registered');
|
||||
$this->assertFalse($application->has('afoobar'), '->has() returns false if a named command is not registered');
|
||||
|
||||
$application->add($foo = new \FooCommand());
|
||||
$this->assertTrue($application->has('afoobar'), '->has() returns true if an alias is registered');
|
||||
$this->assertEquals($foo, $application->get('foo:bar'), '->get() returns a command by name');
|
||||
$this->assertEquals($foo, $application->get('afoobar'), '->get() returns a command by alias');
|
||||
|
||||
$application->setCommandLoader(new FactoryCommandLoader(array(
|
||||
'foo:bar1' => function () { return new \Foo1Command(); },
|
||||
)));
|
||||
|
||||
$this->assertTrue($application->has('afoobar'), '->has() returns true if an instance is registered for an alias even with command loader');
|
||||
$this->assertEquals($foo, $application->get('foo:bar'), '->get() returns an instance by name even with command loader');
|
||||
$this->assertEquals($foo, $application->get('afoobar'), '->get() returns an instance by alias even with command loader');
|
||||
$this->assertTrue($application->has('foo:bar1'), '->has() returns true for commands registered in the loader');
|
||||
$this->assertInstanceOf(\Foo1Command::class, $foo1 = $application->get('foo:bar1'), '->get() returns a command by name from the command loader');
|
||||
$this->assertTrue($application->has('afoobar1'), '->has() returns true for commands registered in the loader');
|
||||
$this->assertEquals($foo1, $application->get('afoobar1'), '->get() returns a command by name from the command loader');
|
||||
}
|
||||
|
||||
public function testSilentHelp()
|
||||
{
|
||||
$application = new Application();
|
||||
|
|
@ -233,6 +285,14 @@ class ApplicationTest extends TestCase
|
|||
$application->findNamespace('f');
|
||||
}
|
||||
|
||||
public function testFindNonAmbiguous()
|
||||
{
|
||||
$application = new Application();
|
||||
$application->add(new \TestTiti());
|
||||
$application->add(new \TestToto());
|
||||
$this->assertEquals('test-toto', $application->find('test')->getName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \Symfony\Component\Console\Exception\CommandNotFoundException
|
||||
* @expectedExceptionMessage There are no commands defined in the "bar" namespace.
|
||||
|
|
@ -269,6 +329,55 @@ class ApplicationTest extends TestCase
|
|||
$this->assertInstanceOf('FooCommand', $application->find('a'), '->find() returns a command if the abbreviation exists for an alias');
|
||||
}
|
||||
|
||||
public function testFindCaseSensitiveFirst()
|
||||
{
|
||||
$application = new Application();
|
||||
$application->add(new \FooSameCaseUppercaseCommand());
|
||||
$application->add(new \FooSameCaseLowercaseCommand());
|
||||
|
||||
$this->assertInstanceOf('FooSameCaseUppercaseCommand', $application->find('f:B'), '->find() returns a command if the abbreviation is the correct case');
|
||||
$this->assertInstanceOf('FooSameCaseUppercaseCommand', $application->find('f:BAR'), '->find() returns a command if the abbreviation is the correct case');
|
||||
$this->assertInstanceOf('FooSameCaseLowercaseCommand', $application->find('f:b'), '->find() returns a command if the abbreviation is the correct case');
|
||||
$this->assertInstanceOf('FooSameCaseLowercaseCommand', $application->find('f:bar'), '->find() returns a command if the abbreviation is the correct case');
|
||||
}
|
||||
|
||||
public function testFindCaseInsensitiveAsFallback()
|
||||
{
|
||||
$application = new Application();
|
||||
$application->add(new \FooSameCaseLowercaseCommand());
|
||||
|
||||
$this->assertInstanceOf('FooSameCaseLowercaseCommand', $application->find('f:b'), '->find() returns a command if the abbreviation is the correct case');
|
||||
$this->assertInstanceOf('FooSameCaseLowercaseCommand', $application->find('f:B'), '->find() will fallback to case insensitivity');
|
||||
$this->assertInstanceOf('FooSameCaseLowercaseCommand', $application->find('FoO:BaR'), '->find() will fallback to case insensitivity');
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \Symfony\Component\Console\Exception\CommandNotFoundException
|
||||
* @expectedExceptionMessage Command "FoO:BaR" is ambiguous
|
||||
*/
|
||||
public function testFindCaseInsensitiveSuggestions()
|
||||
{
|
||||
$application = new Application();
|
||||
$application->add(new \FooSameCaseLowercaseCommand());
|
||||
$application->add(new \FooSameCaseUppercaseCommand());
|
||||
|
||||
$this->assertInstanceOf('FooSameCaseLowercaseCommand', $application->find('FoO:BaR'), '->find() will find two suggestions with case insensitivity');
|
||||
}
|
||||
|
||||
public function testFindWithCommandLoader()
|
||||
{
|
||||
$application = new Application();
|
||||
$application->setCommandLoader(new FactoryCommandLoader(array(
|
||||
'foo:bar' => $f = function () { return new \FooCommand(); },
|
||||
)));
|
||||
|
||||
$this->assertInstanceOf('FooCommand', $application->find('foo:bar'), '->find() returns a command if its name exists');
|
||||
$this->assertInstanceOf('Symfony\Component\Console\Command\HelpCommand', $application->find('h'), '->find() returns a command if its name exists');
|
||||
$this->assertInstanceOf('FooCommand', $application->find('f:bar'), '->find() returns a command if the abbreviation for the namespace exists');
|
||||
$this->assertInstanceOf('FooCommand', $application->find('f:b'), '->find() returns a command if the abbreviation for the namespace and the command name exist');
|
||||
$this->assertInstanceOf('FooCommand', $application->find('a'), '->find() returns a command if the abbreviation exists for an alias');
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideAmbiguousAbbreviations
|
||||
*/
|
||||
|
|
@ -352,8 +461,8 @@ class ApplicationTest extends TestCase
|
|||
public function provideInvalidCommandNamesSingle()
|
||||
{
|
||||
return array(
|
||||
array('foo3:baR'),
|
||||
array('foO3:bar'),
|
||||
array('foo3:barr'),
|
||||
array('fooo3:bar'),
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -619,10 +728,10 @@ class ApplicationTest extends TestCase
|
|||
$tester = new ApplicationTester($application);
|
||||
|
||||
$tester->run(array('command' => 'foo'), array('decorated' => false, 'capture_stderr_separately' => true));
|
||||
$this->assertStringEqualsFile(self::$fixturesPath.'/application_renderexception_doublewidth1.txt', $tester->getErrorOutput(true), '->renderException() renders a pretty exceptions with previous exceptions');
|
||||
$this->assertStringMatchesFormatFile(self::$fixturesPath.'/application_renderexception_doublewidth1.txt', $tester->getErrorOutput(true), '->renderException() renders a pretty exceptions with previous exceptions');
|
||||
|
||||
$tester->run(array('command' => 'foo'), array('decorated' => true, 'capture_stderr_separately' => true));
|
||||
$this->assertStringEqualsFile(self::$fixturesPath.'/application_renderexception_doublewidth1decorated.txt', $tester->getErrorOutput(true), '->renderException() renders a pretty exceptions with previous exceptions');
|
||||
$this->assertStringMatchesFormatFile(self::$fixturesPath.'/application_renderexception_doublewidth1decorated.txt', $tester->getErrorOutput(true), '->renderException() renders a pretty exceptions with previous exceptions');
|
||||
|
||||
$application = new Application();
|
||||
$application->setAutoExit(false);
|
||||
|
|
@ -632,7 +741,7 @@ class ApplicationTest extends TestCase
|
|||
});
|
||||
$tester = new ApplicationTester($application);
|
||||
$tester->run(array('command' => 'foo'), array('decorated' => false, 'capture_stderr_separately' => true));
|
||||
$this->assertStringEqualsFile(self::$fixturesPath.'/application_renderexception_doublewidth2.txt', $tester->getErrorOutput(true), '->renderException() wraps messages when they are bigger than the terminal');
|
||||
$this->assertStringMatchesFormatFile(self::$fixturesPath.'/application_renderexception_doublewidth2.txt', $tester->getErrorOutput(true), '->renderException() wraps messages when they are bigger than the terminal');
|
||||
putenv('COLUMNS=120');
|
||||
}
|
||||
|
||||
|
|
@ -647,10 +756,26 @@ class ApplicationTest extends TestCase
|
|||
$tester = new ApplicationTester($application);
|
||||
|
||||
$tester->run(array('command' => 'foo'), array('decorated' => false));
|
||||
$this->assertStringEqualsFile(self::$fixturesPath.'/application_renderexception_escapeslines.txt', $tester->getDisplay(true), '->renderException() escapes lines containing formatting');
|
||||
$this->assertStringMatchesFormatFile(self::$fixturesPath.'/application_renderexception_escapeslines.txt', $tester->getDisplay(true), '->renderException() escapes lines containing formatting');
|
||||
putenv('COLUMNS=120');
|
||||
}
|
||||
|
||||
public function testRenderExceptionLineBreaks()
|
||||
{
|
||||
$application = $this->getMockBuilder('Symfony\Component\Console\Application')->setMethods(array('getTerminalWidth'))->getMock();
|
||||
$application->setAutoExit(false);
|
||||
$application->expects($this->any())
|
||||
->method('getTerminalWidth')
|
||||
->will($this->returnValue(120));
|
||||
$application->register('foo')->setCode(function () {
|
||||
throw new \InvalidArgumentException("\n\nline 1 with extra spaces \nline 2\n\nline 4\n");
|
||||
});
|
||||
$tester = new ApplicationTester($application);
|
||||
|
||||
$tester->run(array('command' => 'foo'), array('decorated' => false));
|
||||
$this->assertStringMatchesFormatFile(self::$fixturesPath.'/application_renderexception_linebreaks.txt', $tester->getDisplay(true), '->renderException() keep multiple line breaks');
|
||||
}
|
||||
|
||||
public function testRun()
|
||||
{
|
||||
$application = new Application();
|
||||
|
|
@ -1039,6 +1164,9 @@ class ApplicationTest extends TestCase
|
|||
$this->assertContains('before.error.after.', $tester->getDisplay());
|
||||
}
|
||||
|
||||
/**
|
||||
* @requires PHP 7
|
||||
*/
|
||||
public function testRunWithError()
|
||||
{
|
||||
$application = new Application();
|
||||
|
|
@ -1159,6 +1287,7 @@ class ApplicationTest extends TestCase
|
|||
}
|
||||
|
||||
/**
|
||||
* @requires PHP 7
|
||||
* @expectedException \LogicException
|
||||
* @expectedExceptionMessage error
|
||||
*/
|
||||
|
|
@ -1180,6 +1309,9 @@ class ApplicationTest extends TestCase
|
|||
$this->assertContains('before.dym.error.after.', $tester->getDisplay(), 'The PHP Error did not dispached events');
|
||||
}
|
||||
|
||||
/**
|
||||
* @requires PHP 7
|
||||
*/
|
||||
public function testRunDispatchesAllEventsWithError()
|
||||
{
|
||||
$application = new Application();
|
||||
|
|
@ -1197,6 +1329,9 @@ class ApplicationTest extends TestCase
|
|||
$this->assertContains('before.dym.error.after.', $tester->getDisplay(), 'The PHP Error did not dispached events');
|
||||
}
|
||||
|
||||
/**
|
||||
* @requires PHP 7
|
||||
*/
|
||||
public function testRunWithErrorFailingStatusCode()
|
||||
{
|
||||
$application = new Application();
|
||||
|
|
@ -1315,16 +1450,31 @@ class ApplicationTest extends TestCase
|
|||
$application->setDefaultCommand($command->getName());
|
||||
|
||||
$tester = new ApplicationTester($application);
|
||||
$tester->run(array());
|
||||
$this->assertEquals('interact called'.PHP_EOL.'called'.PHP_EOL, $tester->getDisplay(), 'Application runs the default set command if different from \'list\' command');
|
||||
$tester->run(array(), array('interactive' => false));
|
||||
$this->assertEquals('called'.PHP_EOL, $tester->getDisplay(), 'Application runs the default set command if different from \'list\' command');
|
||||
|
||||
$application = new CustomDefaultCommandApplication();
|
||||
$application->setAutoExit(false);
|
||||
|
||||
$tester = new ApplicationTester($application);
|
||||
$tester->run(array());
|
||||
$tester->run(array(), array('interactive' => false));
|
||||
|
||||
$this->assertEquals('interact called'.PHP_EOL.'called'.PHP_EOL, $tester->getDisplay(), 'Application runs the default set command if different from \'list\' command');
|
||||
$this->assertEquals('called'.PHP_EOL, $tester->getDisplay(), 'Application runs the default set command if different from \'list\' command');
|
||||
}
|
||||
|
||||
public function testSetRunCustomDefaultCommandWithOption()
|
||||
{
|
||||
$command = new \FooOptCommand();
|
||||
|
||||
$application = new Application();
|
||||
$application->setAutoExit(false);
|
||||
$application->add($command);
|
||||
$application->setDefaultCommand($command->getName());
|
||||
|
||||
$tester = new ApplicationTester($application);
|
||||
$tester->run(array('--fooopt' => 'opt'), array('interactive' => false));
|
||||
|
||||
$this->assertEquals('called'.PHP_EOL.'opt'.PHP_EOL, $tester->getDisplay(), 'Application runs the default set command if different from \'list\' command');
|
||||
}
|
||||
|
||||
public function testSetRunCustomSingleCommand()
|
||||
|
|
@ -1362,6 +1512,60 @@ class ApplicationTest extends TestCase
|
|||
$this->assertEquals($tester->getInput()->isInteractive(), @posix_isatty($inputStream));
|
||||
}
|
||||
|
||||
public function testRunLazyCommandService()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$container->addCompilerPass(new AddConsoleCommandPass());
|
||||
$container
|
||||
->register('lazy-command', LazyCommand::class)
|
||||
->addTag('console.command', array('command' => 'lazy:command'))
|
||||
->addTag('console.command', array('command' => 'lazy:alias'))
|
||||
->addTag('console.command', array('command' => 'lazy:alias2'));
|
||||
$container->compile();
|
||||
|
||||
$application = new Application();
|
||||
$application->setCommandLoader($container->get('console.command_loader'));
|
||||
$application->setAutoExit(false);
|
||||
|
||||
$tester = new ApplicationTester($application);
|
||||
|
||||
$tester->run(array('command' => 'lazy:command'));
|
||||
$this->assertSame("lazy-command called\n", $tester->getDisplay(true));
|
||||
|
||||
$tester->run(array('command' => 'lazy:alias'));
|
||||
$this->assertSame("lazy-command called\n", $tester->getDisplay(true));
|
||||
|
||||
$tester->run(array('command' => 'lazy:alias2'));
|
||||
$this->assertSame("lazy-command called\n", $tester->getDisplay(true));
|
||||
|
||||
$command = $application->get('lazy:command');
|
||||
$this->assertSame(array('lazy:alias', 'lazy:alias2'), $command->getAliases());
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \Symfony\Component\Console\Exception\CommandNotFoundException
|
||||
*/
|
||||
public function testGetDisabledLazyCommand()
|
||||
{
|
||||
$application = new Application();
|
||||
$application->setCommandLoader(new FactoryCommandLoader(array('disabled' => function () { return new DisabledCommand(); })));
|
||||
$application->get('disabled');
|
||||
}
|
||||
|
||||
public function testHasReturnsFalseForDisabledLazyCommand()
|
||||
{
|
||||
$application = new Application();
|
||||
$application->setCommandLoader(new FactoryCommandLoader(array('disabled' => function () { return new DisabledCommand(); })));
|
||||
$this->assertFalse($application->has('disabled'));
|
||||
}
|
||||
|
||||
public function testAllExcludesDisabledLazyCommand()
|
||||
{
|
||||
$application = new Application();
|
||||
$application->setCommandLoader(new FactoryCommandLoader(array('disabled' => function () { return new DisabledCommand(); })));
|
||||
$this->assertArrayNotHasKey('disabled', $application->all());
|
||||
}
|
||||
|
||||
protected function getDispatcher($skipCommand = false)
|
||||
{
|
||||
$dispatcher = new EventDispatcher();
|
||||
|
|
@ -1410,6 +1614,13 @@ class ApplicationTest extends TestCase
|
|||
$this->assertSame($e->getMessage(), 'Class \'UnknownClass\' not found');
|
||||
}
|
||||
}
|
||||
|
||||
protected function tearDown()
|
||||
{
|
||||
putenv('SHELL_VERBOSITY');
|
||||
unset($_ENV['SHELL_VERBOSITY']);
|
||||
unset($_SERVER['SHELL_VERBOSITY']);
|
||||
}
|
||||
}
|
||||
|
||||
class CustomApplication extends Application
|
||||
|
|
@ -1449,3 +1660,19 @@ class CustomDefaultCommandApplication extends Application
|
|||
$this->setDefaultCommand($command->getName());
|
||||
}
|
||||
}
|
||||
|
||||
class LazyCommand extends Command
|
||||
{
|
||||
public function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$output->writeln('lazy-command called');
|
||||
}
|
||||
}
|
||||
|
||||
class DisabledCommand extends Command
|
||||
{
|
||||
public function isEnabled()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
12
pfosten/vendor/symfony/console/Tests/Command/CommandTest.php
vendored
Executable file → Normal file
12
pfosten/vendor/symfony/console/Tests/Command/CommandTest.php
vendored
Executable file → Normal file
|
|
@ -12,16 +12,16 @@
|
|||
namespace Symfony\Component\Console\Tests\Command;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Component\Console\Application;
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Helper\FormatterHelper;
|
||||
use Symfony\Component\Console\Application;
|
||||
use Symfony\Component\Console\Input\InputDefinition;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Input\InputDefinition;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Input\StringInput;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Output\NullOutput;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Tester\CommandTester;
|
||||
|
||||
class CommandTest extends TestCase
|
||||
|
|
@ -46,7 +46,7 @@ class CommandTest extends TestCase
|
|||
*/
|
||||
public function testCommandNameCannotBeEmpty()
|
||||
{
|
||||
new Command();
|
||||
(new Application())->add(new Command());
|
||||
}
|
||||
|
||||
public function testSetApplication()
|
||||
|
|
@ -340,7 +340,7 @@ class CommandTest extends TestCase
|
|||
$command->setApplication(new Application());
|
||||
$command->setProcessTitle('foo');
|
||||
$this->assertSame(0, $command->run(new StringInput(''), new NullOutput()));
|
||||
if (function_exists('cli_set_process_title')) {
|
||||
if (\function_exists('cli_set_process_title')) {
|
||||
if (null === @cli_get_process_title() && 'Darwin' === PHP_OS) {
|
||||
$this->markTestSkipped('Running "cli_get_process_title" as an unprivileged user is not supported on MacOS.');
|
||||
}
|
||||
|
|
|
|||
4
pfosten/vendor/symfony/console/Tests/Command/HelpCommandTest.php
vendored
Executable file → Normal file
4
pfosten/vendor/symfony/console/Tests/Command/HelpCommandTest.php
vendored
Executable file → Normal file
|
|
@ -12,10 +12,10 @@
|
|||
namespace Symfony\Component\Console\Tests\Command;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Component\Console\Tester\CommandTester;
|
||||
use Symfony\Component\Console\Application;
|
||||
use Symfony\Component\Console\Command\HelpCommand;
|
||||
use Symfony\Component\Console\Command\ListCommand;
|
||||
use Symfony\Component\Console\Application;
|
||||
use Symfony\Component\Console\Tester\CommandTester;
|
||||
|
||||
class HelpCommandTest extends TestCase
|
||||
{
|
||||
|
|
|
|||
2
pfosten/vendor/symfony/console/Tests/Command/ListCommandTest.php
vendored
Executable file → Normal file
2
pfosten/vendor/symfony/console/Tests/Command/ListCommandTest.php
vendored
Executable file → Normal file
|
|
@ -12,8 +12,8 @@
|
|||
namespace Symfony\Component\Console\Tests\Command;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Component\Console\Tester\CommandTester;
|
||||
use Symfony\Component\Console\Application;
|
||||
use Symfony\Component\Console\Tester\CommandTester;
|
||||
|
||||
class ListCommandTest extends TestCase
|
||||
{
|
||||
|
|
|
|||
14
pfosten/vendor/symfony/console/Tests/Command/LockableTraitTest.php
vendored
Executable file → Normal file
14
pfosten/vendor/symfony/console/Tests/Command/LockableTraitTest.php
vendored
Executable file → Normal file
|
|
@ -13,7 +13,9 @@ namespace Symfony\Component\Console\Tests\Command;
|
|||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Component\Console\Tester\CommandTester;
|
||||
use Symfony\Component\Filesystem\LockHandler;
|
||||
use Symfony\Component\Lock\Factory;
|
||||
use Symfony\Component\Lock\Store\FlockStore;
|
||||
use Symfony\Component\Lock\Store\SemaphoreStore;
|
||||
|
||||
class LockableTraitTest extends TestCase
|
||||
{
|
||||
|
|
@ -39,8 +41,14 @@ class LockableTraitTest extends TestCase
|
|||
{
|
||||
$command = new \FooLockCommand();
|
||||
|
||||
$lock = new LockHandler($command->getName());
|
||||
$lock->lock();
|
||||
if (SemaphoreStore::isSupported(false)) {
|
||||
$store = new SemaphoreStore();
|
||||
} else {
|
||||
$store = new FlockStore();
|
||||
}
|
||||
|
||||
$lock = (new Factory($store))->createLock($command->getName());
|
||||
$lock->acquire();
|
||||
|
||||
$tester = new CommandTester($command);
|
||||
$this->assertSame(1, $tester->execute(array()));
|
||||
|
|
|
|||
146
pfosten/vendor/symfony/console/Tests/DependencyInjection/AddConsoleCommandPassTest.php
vendored
Executable file → Normal file
146
pfosten/vendor/symfony/console/Tests/DependencyInjection/AddConsoleCommandPassTest.php
vendored
Executable file → Normal file
|
|
@ -12,11 +12,15 @@
|
|||
namespace Symfony\Component\Console\Tests\DependencyInjection;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Component\Console\DependencyInjection\AddConsoleCommandPass;
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\CommandLoader\ContainerCommandLoader;
|
||||
use Symfony\Component\Console\DependencyInjection\AddConsoleCommandPass;
|
||||
use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument;
|
||||
use Symfony\Component\DependencyInjection\ChildDefinition;
|
||||
use Symfony\Component\DependencyInjection\Compiler\PassConfig;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\DependencyInjection\Definition;
|
||||
use Symfony\Component\HttpKernel\Bundle\Bundle;
|
||||
use Symfony\Component\DependencyInjection\TypedReference;
|
||||
|
||||
class AddConsoleCommandPassTest extends TestCase
|
||||
{
|
||||
|
|
@ -26,7 +30,7 @@ class AddConsoleCommandPassTest extends TestCase
|
|||
public function testProcess($public)
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$container->addCompilerPass(new AddConsoleCommandPass());
|
||||
$container->addCompilerPass(new AddConsoleCommandPass(), PassConfig::TYPE_BEFORE_REMOVING);
|
||||
$container->setParameter('my-command.class', 'Symfony\Component\Console\Tests\DependencyInjection\MyCommand');
|
||||
|
||||
$definition = new Definition('%my-command.class%');
|
||||
|
|
@ -53,6 +57,62 @@ class AddConsoleCommandPassTest extends TestCase
|
|||
$this->assertSame(array($alias => $id), $container->getParameter('console.command.ids'));
|
||||
}
|
||||
|
||||
public function testProcessRegistersLazyCommands()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$command = $container
|
||||
->register('my-command', MyCommand::class)
|
||||
->setPublic(false)
|
||||
->addTag('console.command', array('command' => 'my:command'))
|
||||
->addTag('console.command', array('command' => 'my:alias'))
|
||||
;
|
||||
|
||||
(new AddConsoleCommandPass())->process($container);
|
||||
|
||||
$commandLoader = $container->getDefinition('console.command_loader');
|
||||
$commandLocator = $container->getDefinition((string) $commandLoader->getArgument(0));
|
||||
|
||||
$this->assertSame(ContainerCommandLoader::class, $commandLoader->getClass());
|
||||
$this->assertSame(array('my:command' => 'my-command', 'my:alias' => 'my-command'), $commandLoader->getArgument(1));
|
||||
$this->assertEquals(array(array('my-command' => new ServiceClosureArgument(new TypedReference('my-command', MyCommand::class)))), $commandLocator->getArguments());
|
||||
$this->assertSame(array('console.command.symfony_component_console_tests_dependencyinjection_mycommand' => 'my-command'), $container->getParameter('console.command.ids'));
|
||||
$this->assertSame(array('my-command' => true), $container->getParameter('console.lazy_command.ids'));
|
||||
$this->assertSame(array(array('setName', array('my:command')), array('setAliases', array(array('my:alias')))), $command->getMethodCalls());
|
||||
}
|
||||
|
||||
public function testProcessFallsBackToDefaultName()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$container
|
||||
->register('with-default-name', NamedCommand::class)
|
||||
->setPublic(false)
|
||||
->addTag('console.command')
|
||||
;
|
||||
|
||||
$pass = new AddConsoleCommandPass();
|
||||
$pass->process($container);
|
||||
|
||||
$commandLoader = $container->getDefinition('console.command_loader');
|
||||
$commandLocator = $container->getDefinition((string) $commandLoader->getArgument(0));
|
||||
|
||||
$this->assertSame(ContainerCommandLoader::class, $commandLoader->getClass());
|
||||
$this->assertSame(array('default' => 'with-default-name'), $commandLoader->getArgument(1));
|
||||
$this->assertEquals(array(array('with-default-name' => new ServiceClosureArgument(new TypedReference('with-default-name', NamedCommand::class)))), $commandLocator->getArguments());
|
||||
$this->assertSame(array('console.command.symfony_component_console_tests_dependencyinjection_namedcommand' => 'with-default-name'), $container->getParameter('console.command.ids'));
|
||||
$this->assertSame(array('with-default-name' => true), $container->getParameter('console.lazy_command.ids'));
|
||||
|
||||
$container = new ContainerBuilder();
|
||||
$container
|
||||
->register('with-default-name', NamedCommand::class)
|
||||
->setPublic(false)
|
||||
->addTag('console.command', array('command' => 'new-name'))
|
||||
;
|
||||
|
||||
$pass->process($container);
|
||||
|
||||
$this->assertSame(array('new-name' => 'with-default-name'), $container->getDefinition('console.command_loader')->getArgument(1));
|
||||
}
|
||||
|
||||
public function visibilityProvider()
|
||||
{
|
||||
return array(
|
||||
|
|
@ -69,7 +129,7 @@ class AddConsoleCommandPassTest extends TestCase
|
|||
{
|
||||
$container = new ContainerBuilder();
|
||||
$container->setResourceTracking(false);
|
||||
$container->addCompilerPass(new AddConsoleCommandPass());
|
||||
$container->addCompilerPass(new AddConsoleCommandPass(), PassConfig::TYPE_BEFORE_REMOVING);
|
||||
|
||||
$definition = new Definition('Symfony\Component\Console\Tests\DependencyInjection\MyCommand');
|
||||
$definition->addTag('console.command');
|
||||
|
|
@ -87,7 +147,7 @@ class AddConsoleCommandPassTest extends TestCase
|
|||
{
|
||||
$container = new ContainerBuilder();
|
||||
$container->setResourceTracking(false);
|
||||
$container->addCompilerPass(new AddConsoleCommandPass());
|
||||
$container->addCompilerPass(new AddConsoleCommandPass(), PassConfig::TYPE_BEFORE_REMOVING);
|
||||
|
||||
$definition = new Definition('SplObjectStorage');
|
||||
$definition->addTag('console.command');
|
||||
|
|
@ -117,12 +177,86 @@ class AddConsoleCommandPassTest extends TestCase
|
|||
$this->assertTrue($container->hasAlias($alias1));
|
||||
$this->assertTrue($container->hasAlias($alias2));
|
||||
}
|
||||
|
||||
public function testProcessOnChildDefinitionWithClass()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$container->addCompilerPass(new AddConsoleCommandPass(), PassConfig::TYPE_BEFORE_REMOVING);
|
||||
$className = 'Symfony\Component\Console\Tests\DependencyInjection\MyCommand';
|
||||
|
||||
$parentId = 'my-parent-command';
|
||||
$childId = 'my-child-command';
|
||||
|
||||
$parentDefinition = new Definition(/* no class */);
|
||||
$parentDefinition->setAbstract(true)->setPublic(false);
|
||||
|
||||
$childDefinition = new ChildDefinition($parentId);
|
||||
$childDefinition->addTag('console.command')->setPublic(true);
|
||||
$childDefinition->setClass($className);
|
||||
|
||||
$container->setDefinition($parentId, $parentDefinition);
|
||||
$container->setDefinition($childId, $childDefinition);
|
||||
|
||||
$container->compile();
|
||||
$command = $container->get($childId);
|
||||
|
||||
$this->assertInstanceOf($className, $command);
|
||||
}
|
||||
|
||||
public function testProcessOnChildDefinitionWithParentClass()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$container->addCompilerPass(new AddConsoleCommandPass(), PassConfig::TYPE_BEFORE_REMOVING);
|
||||
$className = 'Symfony\Component\Console\Tests\DependencyInjection\MyCommand';
|
||||
|
||||
$parentId = 'my-parent-command';
|
||||
$childId = 'my-child-command';
|
||||
|
||||
$parentDefinition = new Definition($className);
|
||||
$parentDefinition->setAbstract(true)->setPublic(false);
|
||||
|
||||
$childDefinition = new ChildDefinition($parentId);
|
||||
$childDefinition->addTag('console.command')->setPublic(true);
|
||||
|
||||
$container->setDefinition($parentId, $parentDefinition);
|
||||
$container->setDefinition($childId, $childDefinition);
|
||||
|
||||
$container->compile();
|
||||
$command = $container->get($childId);
|
||||
|
||||
$this->assertInstanceOf($className, $command);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \RuntimeException
|
||||
* @expectedExceptionMessage The definition for "my-child-command" has no class.
|
||||
*/
|
||||
public function testProcessOnChildDefinitionWithoutClass()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$container->addCompilerPass(new AddConsoleCommandPass(), PassConfig::TYPE_BEFORE_REMOVING);
|
||||
|
||||
$parentId = 'my-parent-command';
|
||||
$childId = 'my-child-command';
|
||||
|
||||
$parentDefinition = new Definition();
|
||||
$parentDefinition->setAbstract(true)->setPublic(false);
|
||||
|
||||
$childDefinition = new ChildDefinition($parentId);
|
||||
$childDefinition->addTag('console.command')->setPublic(true);
|
||||
|
||||
$container->setDefinition($parentId, $parentDefinition);
|
||||
$container->setDefinition($childId, $childDefinition);
|
||||
|
||||
$container->compile();
|
||||
}
|
||||
}
|
||||
|
||||
class MyCommand extends Command
|
||||
{
|
||||
}
|
||||
|
||||
class ExtensionPresentBundle extends Bundle
|
||||
class NamedCommand extends Command
|
||||
{
|
||||
protected static $defaultName = 'default';
|
||||
}
|
||||
|
|
|
|||
0
pfosten/vendor/symfony/console/Tests/Descriptor/AbstractDescriptorTest.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Tests/Descriptor/AbstractDescriptorTest.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Tests/Descriptor/JsonDescriptorTest.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Tests/Descriptor/JsonDescriptorTest.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Tests/Descriptor/MarkdownDescriptorTest.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Tests/Descriptor/MarkdownDescriptorTest.php
vendored
Executable file → Normal file
2
pfosten/vendor/symfony/console/Tests/Descriptor/ObjectsProvider.php
vendored
Executable file → Normal file
2
pfosten/vendor/symfony/console/Tests/Descriptor/ObjectsProvider.php
vendored
Executable file → Normal file
|
|
@ -32,6 +32,7 @@ class ObjectsProvider
|
|||
'input_argument_3' => new InputArgument('argument_name', InputArgument::OPTIONAL, 'argument description', 'default_value'),
|
||||
'input_argument_4' => new InputArgument('argument_name', InputArgument::REQUIRED, "multiline\nargument description"),
|
||||
'input_argument_with_style' => new InputArgument('argument_name', InputArgument::OPTIONAL, 'argument description', '<comment>style</>'),
|
||||
'input_argument_with_default_inf_value' => new InputArgument('argument_name', InputArgument::OPTIONAL, 'argument description', INF),
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -46,6 +47,7 @@ class ObjectsProvider
|
|||
'input_option_6' => new InputOption('option_name', array('o', 'O'), InputOption::VALUE_REQUIRED, 'option with multiple shortcuts'),
|
||||
'input_option_with_style' => new InputOption('option_name', 'o', InputOption::VALUE_REQUIRED, 'option description', '<comment>style</>'),
|
||||
'input_option_with_style_array' => new InputOption('option_name', 'o', InputOption::VALUE_IS_ARRAY | InputOption::VALUE_REQUIRED, 'option description', array('<comment>Hello</comment>', '<info>world</info>')),
|
||||
'input_option_with_default_inf_value' => new InputOption('option_name', 'o', InputOption::VALUE_OPTIONAL, 'option description', INF),
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
0
pfosten/vendor/symfony/console/Tests/Descriptor/TextDescriptorTest.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Tests/Descriptor/TextDescriptorTest.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Tests/Descriptor/XmlDescriptorTest.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Tests/Descriptor/XmlDescriptorTest.php
vendored
Executable file → Normal file
14
pfosten/vendor/symfony/console/Tests/EventListener/ErrorListenerTest.php
vendored
Executable file → Normal file
14
pfosten/vendor/symfony/console/Tests/EventListener/ErrorListenerTest.php
vendored
Executable file → Normal file
|
|
@ -20,8 +20,8 @@ use Symfony\Component\Console\EventListener\ErrorListener;
|
|||
use Symfony\Component\Console\Input\ArgvInput;
|
||||
use Symfony\Component\Console\Input\ArrayInput;
|
||||
use Symfony\Component\Console\Input\Input;
|
||||
use Symfony\Component\Console\Input\StringInput;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\StringInput;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
class ErrorListenerTest extends TestCase
|
||||
|
|
@ -34,7 +34,7 @@ class ErrorListenerTest extends TestCase
|
|||
$logger
|
||||
->expects($this->once())
|
||||
->method('error')
|
||||
->with('Error thrown while running command "{command}". Message: "{message}"', array('error' => $error, 'command' => 'test:run --foo=baz buzz', 'message' => 'An error occurred'))
|
||||
->with('Error thrown while running command "{command}". Message: "{message}"', array('exception' => $error, 'command' => 'test:run --foo=baz buzz', 'message' => 'An error occurred'))
|
||||
;
|
||||
|
||||
$listener = new ErrorListener($logger);
|
||||
|
|
@ -49,7 +49,7 @@ class ErrorListenerTest extends TestCase
|
|||
$logger
|
||||
->expects($this->once())
|
||||
->method('error')
|
||||
->with('An error occurred while using the console. Message: "{message}"', array('error' => $error, 'message' => 'An error occurred'))
|
||||
->with('An error occurred while using the console. Message: "{message}"', array('exception' => $error, 'message' => 'An error occurred'))
|
||||
;
|
||||
|
||||
$listener = new ErrorListener($logger);
|
||||
|
|
@ -61,7 +61,7 @@ class ErrorListenerTest extends TestCase
|
|||
$logger = $this->getLogger();
|
||||
$logger
|
||||
->expects($this->once())
|
||||
->method('error')
|
||||
->method('debug')
|
||||
->with('Command "{command}" exited with code "{code}"', array('command' => 'test:run', 'code' => 255))
|
||||
;
|
||||
|
||||
|
|
@ -74,7 +74,7 @@ class ErrorListenerTest extends TestCase
|
|||
$logger = $this->getLogger();
|
||||
$logger
|
||||
->expects($this->never())
|
||||
->method('error')
|
||||
->method('debug')
|
||||
;
|
||||
|
||||
$listener = new ErrorListener($logger);
|
||||
|
|
@ -97,7 +97,7 @@ class ErrorListenerTest extends TestCase
|
|||
$logger = $this->getLogger();
|
||||
$logger
|
||||
->expects($this->exactly(3))
|
||||
->method('error')
|
||||
->method('debug')
|
||||
->with('Command "{command}" exited with code "{code}"', array('command' => 'test:run --foo=bar', 'code' => 255))
|
||||
;
|
||||
|
||||
|
|
@ -112,7 +112,7 @@ class ErrorListenerTest extends TestCase
|
|||
$logger = $this->getLogger();
|
||||
$logger
|
||||
->expects($this->once())
|
||||
->method('error')
|
||||
->method('debug')
|
||||
->with('Command "{command}" exited with code "{code}"', array('command' => 'test:run', 'code' => 255))
|
||||
;
|
||||
|
||||
|
|
|
|||
0
pfosten/vendor/symfony/console/Tests/Fixtures/BarBucCommand.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Tests/Fixtures/BarBucCommand.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Tests/Fixtures/DescriptorApplication1.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Tests/Fixtures/DescriptorApplication1.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Tests/Fixtures/DescriptorApplication2.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Tests/Fixtures/DescriptorApplication2.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Tests/Fixtures/DescriptorApplicationMbString.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Tests/Fixtures/DescriptorApplicationMbString.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Tests/Fixtures/DescriptorCommand1.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Tests/Fixtures/DescriptorCommand1.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Tests/Fixtures/DescriptorCommand2.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Tests/Fixtures/DescriptorCommand2.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Tests/Fixtures/DescriptorCommand3.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Tests/Fixtures/DescriptorCommand3.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Tests/Fixtures/DescriptorCommand4.php
vendored
Executable file → Normal file
0
pfosten/vendor/symfony/console/Tests/Fixtures/DescriptorCommand4.php
vendored
Executable file → Normal file
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue