/** * @used-by \Df\Qa\Message::report() * @return string */ public static function render() { /** @var string $result */ // 2015-09-02 // Warning: max(): Array must contain at least one element if (!self::$_items) { $result = ''; } else { /** @uses \Df\Qa\Context::sort() */ uasort(self::$_items, [__CLASS__, 'sort']); /** @var int $padSize */ $padSize = 2 + max(array_map('mb_strlen', array_keys(self::$_items))); /** @var string[] $rows */ $rows = []; foreach (self::$_items as $label => $item) { /** @var string $label */ /** @var array(string => string|int) $item */ $rows[] = df_pad($label . ':', $padSize) . $item[self::$VALUE]; } $result = df_cc_n($rows); } return $result; }
/** * Этот метод может быть приватным, * несмотря на использование его как callable, * потому что он используется как callable только внутри своего класса: * @used-by __toString() * http://php.net/manual/language.types.callable.php#113447 * Проверял, что это действительно допустимо, на различных версиях интерпретатора PHP: * http://3v4l.org/OipEQ * @param array $param * @return string|null */ private static function param(array $param) { /** @var string|null $result */ /** @var string|null $value */ $value = $param[1]; if (!$value) { $result = null; } else { /** @var string $label */ $label = $param[0]; /** @var string $pad */ $pad = df_pad(' ', 12 - mb_strlen($label)); $result = "{$label}:{$pad}{$value}"; } return $result; }