Blame view

vendor/symfony/console/Helper/FormatterHelper.php 2.27 KB
ad2e91f7   Mihail   move multyparser ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
  <?php
  
  /*
   * This file is part of the Symfony package.
   *
   * (c) Fabien Potencier <fabien@symfony.com>
   *
   * For the full copyright and license information, please view the LICENSE
   * file that was distributed with this source code.
   */
  
  namespace Symfony\Component\Console\Helper;
  
  use Symfony\Component\Console\Formatter\OutputFormatter;
  
  /**
   * The Formatter class provides helpers to format messages.
   *
   * @author Fabien Potencier <fabien@symfony.com>
   */
  class FormatterHelper extends Helper
  {
      /**
       * Formats a message within a section.
       *
       * @param string $section The section name
       * @param string $message The message
       * @param string $style   The style to apply to the section
       *
       * @return string The format section
       */
      public function formatSection($section, $message, $style = 'info')
      {
          return sprintf('<%s>[%s]</%s> %s', $style, $section, $style, $message);
      }
  
      /**
       * Formats a message as a block of text.
       *
       * @param string|array $messages The message to write in the block
       * @param string       $style    The style to apply to the whole block
       * @param bool         $large    Whether to return a large block
       *
       * @return string The formatter message
       */
      public function formatBlock($messages, $style, $large = false)
      {
          if (!is_array($messages)) {
              $messages = array($messages);
          }
  
          $len = 0;
          $lines = array();
          foreach ($messages as $message) {
              $message = OutputFormatter::escape($message);
              $lines[] = sprintf($large ? '  %s  ' : ' %s ', $message);
              $len = max($this->strlen($message) + ($large ? 4 : 2), $len);
          }
  
          $messages = $large ? array(str_repeat(' ', $len)) : array();
          for ($i = 0; isset($lines[$i]); ++$i) {
              $messages[] = $lines[$i].str_repeat(' ', $len - $this->strlen($lines[$i]));
          }
          if ($large) {
              $messages[] = str_repeat(' ', $len);
          }
  
          for ($i = 0; isset($messages[$i]); ++$i) {
              $messages[$i] = sprintf('<%s>%s</%s>', $style, $messages[$i], $style);
          }
  
          return implode("\n", $messages);
      }
  
      /**
       * {@inheritdoc}
       */
      public function getName()
      {
          return 'formatter';
      }
  }