Пример #1
0
 /**
  * {@inheritdoc}
  */
 public function log($level, $message, array $context = array())
 {
     if (!isset($this->verbosityLevelMap[$level])) {
         throw new InvalidArgumentException(sprintf('The log level "%s" does not exist.', $level));
     }
     // Write to the error output if necessary and available
     if ($this->formatLevelMap[$level] === self::ERROR && $this->output instanceof ConsoleOutputInterface) {
         $output = $this->output->getErrorOutput();
     } else {
         $output = $this->output;
     }
     if ($output->getVerbosity() >= $this->verbosityLevelMap[$level]) {
         $output->writeln(sprintf('<%1$s>[%2$s] %3$s</%1$s>', $this->formatLevelMap[$level], $level, $this->interpolate($message, $context)));
     }
 }
Пример #2
0
 private function determineBestFormat()
 {
     switch ($this->output->getVerbosity()) {
         // OutputInterface::VERBOSITY_QUIET: display is disabled anyway
         case OutputInterface::VERBOSITY_VERBOSE:
             return $this->max ? 'verbose' : 'verbose_nomax';
         case OutputInterface::VERBOSITY_VERY_VERBOSE:
             return $this->max ? 'very_verbose' : 'very_verbose_nomax';
         case OutputInterface::VERBOSITY_DEBUG:
             return $this->max ? 'debug' : 'debug_nomax';
         default:
             return $this->max ? 'normal' : 'normal_nomax';
     }
 }
Пример #3
0
 /**
  * Writes content to output.
  *
  * @param string  $content
  * @param bool    $decorated
  */
 protected function write($content, $decorated = false)
 {
     $this->output->write($content, false, $decorated ? OutputInterface::OUTPUT_NORMAL : OutputInterface::OUTPUT_RAW);
 }
Пример #4
0
 /**
  * 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)
 {
     if (true === $input->hasParameterOption(array('--ansi'))) {
         $output->setDecorated(true);
     } elseif (true === $input->hasParameterOption(array('--no-ansi'))) {
         $output->setDecorated(false);
     }
     if (true === $input->hasParameterOption(array('--no-interaction', '-n'))) {
         $input->setInteractive(false);
     } elseif (function_exists('posix_isatty') && $this->getHelperSet()->has('dialog')) {
         $inputStream = $this->getHelperSet()->get('dialog')->getInputStream();
         if (!@posix_isatty($inputStream)) {
             $input->setInteractive(false);
         }
     }
     if (true === $input->hasParameterOption(array('--quiet', '-q'))) {
         $output->setVerbosity(OutputInterface::VERBOSITY_QUIET);
     } else {
         if ($input->hasParameterOption('-vvv') || $input->hasParameterOption('--verbose=3') || $input->getParameterOption('--verbose') === 3) {
             $output->setVerbosity(OutputInterface::VERBOSITY_DEBUG);
         } elseif ($input->hasParameterOption('-vv') || $input->hasParameterOption('--verbose=2') || $input->getParameterOption('--verbose') === 2) {
             $output->setVerbosity(OutputInterface::VERBOSITY_VERY_VERBOSE);
         } elseif ($input->hasParameterOption('-v') || $input->hasParameterOption('--verbose=1') || $input->hasParameterOption('--verbose') || $input->getParameterOption('--verbose')) {
             $output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE);
         }
     }
 }
Пример #5
0
 /**
  * Validates an attempt.
  *
  * @param callable        $interviewer  A callable that will ask for a question and return the result
  * @param OutputInterface $output       An Output instance
  * @param Question        $question     A Question instance
  *
  * @return string   The validated response
  *
  * @throws \Exception In case the max number of attempts has been reached and no valid response has been given
  */
 private function validateAttempts($interviewer, OutputInterface $output, Question $question)
 {
     $error = null;
     $attempts = $question->getMaxAttempts();
     while (null === $attempts || $attempts--) {
         if (null !== $error) {
             $output->writeln($this->getHelperSet()->get('formatter')->formatBlock($error->getMessage(), 'error'));
         }
         try {
             return call_user_func($question->getValidator(), $interviewer());
         } catch (\Exception $error) {
         }
     }
     throw $error;
 }
Пример #6
0
 /**
  * Overwrites a previous message to the output.
  *
  * @param OutputInterface $output   An Output instance
  * @param string          $message  The message
  */
 private function overwrite(OutputInterface $output, $message)
 {
     $length = $this->strlen($message);
     // append whitespace to match the last line's length
     if (null !== $this->lastMessagesLength && $this->lastMessagesLength > $length) {
         $message = str_pad($message, $this->lastMessagesLength, " ", STR_PAD_RIGHT);
     }
     // carriage return
     $output->write("\r");
     $output->write($message);
     $this->lastMessagesLength = $this->strlen($message);
 }
Пример #7
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $this->input = $input;
     $this->output = $output;
     $output->writeln('called');
 }
Пример #8
0
 /**
  * Wraps a Process callback to add debugging output.
  *
  * @param OutputInterface $output   An OutputInterface interface
  * @param Process         $process  The Process
  * @param callable|null   $callback A PHP callable
  *
  * @return callable
  */
 public function wrapCallback(OutputInterface $output, Process $process, $callback = null)
 {
     $formatter = $this->getHelperSet()->get('debug_formatter');
     $that = $this;
     return function ($type, $buffer) use($output, $process, $callback, $formatter, $that) {
         $output->write($formatter->progress(spl_object_hash($process), $that->escapeString($buffer), Process::ERR === $type));
         if (null !== $callback) {
             call_user_func($callback, $type, $buffer);
         }
     };
 }
Пример #9
0
 public function callableMethodCommand(InputInterface $input, OutputInterface $output)
 {
     $output->writeln('from the code...');
 }
Пример #10
0
 protected function interact(InputInterface $input, OutputInterface $output)
 {
     $output->writeln('interact called');
 }
Пример #11
0
 /**
  * Runs the command.
  *
  * The code to execute is either defined directly with the
  * 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 array An array of [null, $callable, $parameters] that should be called for the command
  *
  * @throws \Exception
  *
  * @see setCode()
  * @see execute()
  *
  * @api
  */
 public function run(InputInterface $input, OutputInterface $output)
 {
     if (null !== $this->processTitle) {
         if (function_exists('cli_set_process_title')) {
             cli_set_process_title($this->processTitle);
         } 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>');
         }
     }
     // force the creation of the synopsis before the merge with the app definition
     $this->getSynopsis();
     // add the application arguments and options
     $this->mergeApplicationDefinition();
     // bind the input against the command specific arguments/options
     try {
         $input->bind($this->definition);
     } catch (\Exception $e) {
         if (!$this->ignoreValidationErrors) {
             throw $e;
         }
     }
     $this->initialize($input, $output);
     if ($input->isInteractive()) {
         $this->interact($input, $output);
     }
     $input->validate();
     $callable = $this->getCallable();
     $params = $this->parseInput($input, $output);
     return new ParsedCommand($callable, $params, $input, $output);
 }
Пример #12
0
 /**
  * Gets cell width.
  *
  * @param array   $row
  * @param int     $column
  *
  * @return int
  */
 private function getCellWidth(array $row, $column)
 {
     return isset($row[$column]) ? Helper::strlenWithoutDecoration($this->output->getFormatter(), $row[$column]) : 0;
 }