Files
archived-doctrine-website/lib/Docs/CodeBlockRenderer.php
2018-08-24 04:50:22 +01:00

44 lines
1.1 KiB
PHP

<?php
declare(strict_types=1);
namespace Doctrine\Website\Docs;
use function in_array;
class CodeBlockRenderer
{
private const CONSOLE_LANGUAGES = ['bash', 'sh', 'console'];
/** @var CodeBlockConsoleRenderer */
private $codeBlockConsoleRenderer;
/** @var CodeBlockWithLineNumbersRenderer */
private $codeBlockWithLineNumbersRenderer;
public function __construct(
CodeBlockConsoleRenderer $codeBlockConsoleRenderer,
CodeBlockWithLineNumbersRenderer $codeBlockWithLineNumbersRenderer
) {
$this->codeBlockConsoleRenderer = $codeBlockConsoleRenderer;
$this->codeBlockWithLineNumbersRenderer = $codeBlockWithLineNumbersRenderer;
}
/**
* @param string[] $lines
*/
public function render(array $lines, string $language) : string
{
if (in_array($language, self::CONSOLE_LANGUAGES, true)) {
return $this->codeBlockConsoleRenderer->render(
$lines
);
}
return $this->codeBlockWithLineNumbersRenderer->render(
$lines,
$language
);
}
}