getVerbosity() public method

public getVerbosity ( )
コード例 #1
0
ファイル: Process.php プロジェクト: GDdark/cici
 /**
  * 运行一个外部进程。
  * @param Output                    $output   一个Output实例
  * @param string|array|ThinkProcess $cmd      指令
  * @param string|null               $error    错误信息
  * @param callable|null             $callback 回调
  * @param int                       $verbosity
  * @return ThinkProcess
  */
 public function run(Output $output, $cmd, $error = null, $callback = null, $verbosity = Output::VERBOSITY_VERY_VERBOSE)
 {
     /** @var Debug $formatter */
     $formatter = $this->getHelperSet()->get('debug_formatter');
     if (is_array($cmd)) {
         $process = ProcessBuilder::create($cmd)->getProcess();
     } elseif ($cmd instanceof ThinkProcess) {
         $process = $cmd;
     } else {
         $process = new ThinkProcess($cmd);
     }
     if ($verbosity <= $output->getVerbosity()) {
         $output->write($formatter->start(spl_object_hash($process), $this->escapeString($process->getCommandLine())));
     }
     if ($output->isDebug()) {
         $callback = $this->wrapCallback($output, $process, $callback);
     }
     $process->run($callback);
     if ($verbosity <= $output->getVerbosity()) {
         $message = $process->isSuccessful() ? 'Command ran successfully' : sprintf('%s Command did not run successfully', $process->getExitCode());
         $output->write($formatter->stop(spl_object_hash($process), $message, $process->isSuccessful()));
     }
     if (!$process->isSuccessful() && null !== $error) {
         $output->writeln(sprintf('<error>%s</error>', $this->escapeString($error)));
     }
     return $process;
 }
コード例 #2
0
ファイル: Console.php プロジェクト: top-think/framework
 public function renderException(\Exception $e)
 {
     $stderr = $this->openErrorStream();
     $decorated = $this->hasColorSupport($stderr);
     $this->formatter->setDecorated($decorated);
     do {
         $title = sprintf('  [%s]  ', get_class($e));
         $len = $this->stringWidth($title);
         $width = $this->getTerminalWidth() ? $this->getTerminalWidth() - 1 : PHP_INT_MAX;
         if (defined('HHVM_VERSION') && $width > 1 << 31) {
             $width = 1 << 31;
         }
         $lines = [];
         foreach (preg_split('/\\r?\\n/', $e->getMessage()) as $line) {
             foreach ($this->splitStringByWidth($line, $width - 4) as $line) {
                 $lineLength = $this->stringWidth(preg_replace('/\\[[^m]*m/', '', $line)) + 4;
                 $lines[] = [$line, $lineLength];
                 $len = max($lineLength, $len);
             }
         }
         $messages = ['', ''];
         $messages[] = $emptyLine = sprintf('<error>%s</error>', str_repeat(' ', $len));
         $messages[] = sprintf('<error>%s%s</error>', $title, str_repeat(' ', max(0, $len - $this->stringWidth($title))));
         foreach ($lines as $line) {
             $messages[] = sprintf('<error>  %s  %s</error>', $line[0], str_repeat(' ', $len - $line[1]));
         }
         $messages[] = $emptyLine;
         $messages[] = '';
         $messages[] = '';
         $this->write($messages, true, Output::OUTPUT_NORMAL, $stderr);
         if (Output::VERBOSITY_VERBOSE <= $this->output->getVerbosity()) {
             $this->write('<comment>Exception trace:</comment>', true, Output::OUTPUT_NORMAL, $stderr);
             // exception related properties
             $trace = $e->getTrace();
             array_unshift($trace, ['function' => '', 'file' => $e->getFile() !== null ? $e->getFile() : 'n/a', 'line' => $e->getLine() !== null ? $e->getLine() : 'n/a', 'args' => []]);
             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'];
                 $file = isset($trace[$i]['file']) ? $trace[$i]['file'] : 'n/a';
                 $line = isset($trace[$i]['line']) ? $trace[$i]['line'] : 'n/a';
                 $this->write(sprintf(' %s%s%s() at <info>%s:%s</info>', $class, $type, $function, $file, $line), true, Output::OUTPUT_NORMAL, $stderr);
             }
             $this->write('', true, Output::OUTPUT_NORMAL, $stderr);
             $this->write('', true, Output::OUTPUT_NORMAL, $stderr);
         }
     } while ($e = $e->getPrevious());
 }