You are here

class DebugFormatterHelper in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/symfony/console/Helper/DebugFormatterHelper.php \Symfony\Component\Console\Helper\DebugFormatterHelper

Helps outputting debug information when running an external program from a command.

An external program can be a Process, an HTTP request, or anything else.

@author Fabien Potencier <fabien@symfony.com>

Hierarchy

Expanded class hierarchy of DebugFormatterHelper

2 files declare their use of DebugFormatterHelper
Application.php in vendor/symfony/console/Application.php
ProcessHelperTest.php in vendor/symfony/console/Tests/Helper/ProcessHelperTest.php

File

vendor/symfony/console/Helper/DebugFormatterHelper.php, line 21

Namespace

Symfony\Component\Console\Helper
View source
class DebugFormatterHelper extends Helper {
  private $colors = array(
    'black',
    'red',
    'green',
    'yellow',
    'blue',
    'magenta',
    'cyan',
    'white',
    'default',
  );
  private $started = array();
  private $count = -1;

  /**
   * Starts a debug formatting session.
   *
   * @param string $id      The id of the formatting session
   * @param string $message The message to display
   * @param string $prefix  The prefix to use
   *
   * @return string
   */
  public function start($id, $message, $prefix = 'RUN') {
    $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);
  }

  /**
   * Adds progress to a formatting session.
   *
   * @param string $id          The id of the formatting session
   * @param string $buffer      The message to display
   * @param bool   $error       Whether to consider the buffer as error
   * @param string $prefix      The prefix for output
   * @param string $errorPrefix The prefix for error output
   *
   * @return string
   */
  public function progress($id, $buffer, $error = false, $prefix = 'OUT', $errorPrefix = 'ERR') {
    $message = '';
    if ($error) {
      if (isset($this->started[$id]['out'])) {
        $message .= "\n";
        unset($this->started[$id]['out']);
      }
      if (!isset($this->started[$id]['err'])) {
        $message .= sprintf('%s<bg=red;fg=white> %s </> ', $this
          ->getBorder($id), $errorPrefix);
        $this->started[$id]['err'] = true;
      }
      $message .= str_replace("\n", sprintf("\n%s<bg=red;fg=white> %s </> ", $this
        ->getBorder($id), $errorPrefix), $buffer);
    }
    else {
      if (isset($this->started[$id]['err'])) {
        $message .= "\n";
        unset($this->started[$id]['err']);
      }
      if (!isset($this->started[$id]['out'])) {
        $message .= sprintf('%s<bg=green;fg=white> %s </> ', $this
          ->getBorder($id), $prefix);
        $this->started[$id]['out'] = true;
      }
      $message .= str_replace("\n", sprintf("\n%s<bg=green;fg=white> %s </> ", $this
        ->getBorder($id), $prefix), $buffer);
    }
    return $message;
  }

  /**
   * Stops a formatting session.
   *
   * @param string $id         The id of the formatting session
   * @param string $message    The message to display
   * @param bool   $successful Whether to consider the result as success
   * @param string $prefix     The prefix for the end output
   *
   * @return string
   */
  public function stop($id, $message, $successful, $prefix = 'RES') {
    $trailingEOL = isset($this->started[$id]['out']) || isset($this->started[$id]['err']) ? "\n" : '';
    if ($successful) {
      return sprintf("%s%s<bg=green;fg=white> %s </> <fg=green>%s</>\n", $trailingEOL, $this
        ->getBorder($id), $prefix, $message);
    }
    $message = sprintf("%s%s<bg=red;fg=white> %s </> <fg=red>%s</>\n", $trailingEOL, $this
      ->getBorder($id), $prefix, $message);
    unset($this->started[$id]['out'], $this->started[$id]['err']);
    return $message;
  }

  /**
   * @param string $id The id of the formatting session
   *
   * @return string
   */
  private function getBorder($id) {
    return sprintf('<bg=%s> </>', $this->colors[$this->started[$id]['border']]);
  }

  /**
   * {@inheritdoc}
   */
  public function getName() {
    return 'debug_formatter';
  }

}

Members

Namesort descending Modifiers Type Description Overrides
DebugFormatterHelper::$colors private property
DebugFormatterHelper::$count private property
DebugFormatterHelper::$started private property
DebugFormatterHelper::getBorder private function
DebugFormatterHelper::getName public function Returns the canonical name of this helper. Overrides HelperInterface::getName
DebugFormatterHelper::progress public function Adds progress to a formatting session.
DebugFormatterHelper::start public function Starts a debug formatting session.
DebugFormatterHelper::stop public function Stops a formatting session.
Helper::$helperSet protected property
Helper::formatMemory public static function
Helper::formatTime public static function
Helper::getHelperSet public function Gets the helper set associated with this helper. Overrides HelperInterface::getHelperSet
Helper::setHelperSet public function Sets the helper set associated with this helper. Overrides HelperInterface::setHelperSet
Helper::strlen public static function Returns the length of a string, using mb_strwidth if it is available.
Helper::strlenWithoutDecoration public static function