/** * Frame with the given Border the given string * * @param string $string * @param Border $border * * @return string */ private static function buildFrame($string, Border $border) { $stringLength = Util::getVisibleStringLength($string); $line = Util::buildPatternLine($border->getLineCharacter(), $stringLength + 2); $firstLine = $border->getCrossCharacter() . $line . $border->getCrossCharacter(); $mainLine = $border->getColumnCharacter() . ' ' . $string . ' ' . $border->getColumnCharacter(); $lastLine = $firstLine; $result = $firstLine . PHP_EOL . $mainLine . PHP_EOL . $lastLine . PHP_EOL; return $result; }
public function testBuildPatternLine() { $this->string(Vivian\Util::buildPatternLine('*', 5))->isEqualTo('*****')->string(Vivian\Util::buildPatternLine('#', 10))->isEqualTo('##########')->string(Vivian\Util::buildPatternLine('?!?', 2))->isEqualTo('?!??!?'); }
/** * @param string $key * @param string $value * @param Structure $structure * @param int $maxKeyLength * @param int $maxValueLength * * @return string */ private static function printStructureLine($key, $value, Structure $structure, $maxKeyLength, $maxValueLength) { $result = ''; $insertTab = $structure->getTab() ? true : false; $border = $structure->getBorder(); if ($border) { $keyLength = Util::getVisibleStringLength($key); $missingKeyLength = $maxKeyLength - $keyLength; $fillingKeySpace = Util::buildPatternLine(' ', $missingKeyLength); $valueLength = Util::getVisibleStringLength($value); $missingValueLength = $maxValueLength - $valueLength; $fillingValueSpace = Util::buildPatternLine(' ', $missingValueLength); $result .= $insertTab ? $structure->getTab() : ''; $result .= $border->getColumnCharacter() . ' ' . $key . $fillingKeySpace . ' '; $result .= $structure->getKeyToValueCharacter() . ' ' . $value . $fillingValueSpace . ' '; $result .= $border->getColumnCharacter() . PHP_EOL; } else { $keyLength = Util::getVisibleStringLength($key); $missingKeyLength = $maxKeyLength - $keyLength; $fillingKeySpace = Util::buildPatternLine(' ', $missingKeyLength); $result .= $insertTab ? $structure->getTab() : ''; $result .= $key . $fillingKeySpace . ' '; $result .= $structure->getKeyToValueCharacter() . ' ' . $value; $result .= PHP_EOL; } return $result; }