Skip to content

Commit 5ca8986

Browse files
committed
Generators/HTML::getFormattedCodeComparisonBlock(): minor refactor
Move some duplicate code to dedicated `private` methods.
1 parent f117c2b commit 5ca8986

File tree

1 file changed

+45
-17
lines changed

1 file changed

+45
-17
lines changed

src/Generators/HTML.php

Lines changed: 45 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
namespace PHP_CodeSniffer\Generators;
1717

1818
use DOMDocument;
19+
use DOMElement;
1920
use DOMNode;
2021
use PHP_CodeSniffer\Config;
2122

@@ -392,23 +393,11 @@ protected function getFormattedCodeComparisonBlock(DOMNode $node)
392393
return '';
393394
}
394395

395-
$firstTitle = trim($firstCodeElm->getAttribute('title'));
396-
$firstTitle = str_replace(' ', '  ', $firstTitle);
397-
$first = trim($firstCodeElm->nodeValue);
398-
$first = str_replace('<?php', '&lt;?php', $first);
399-
$first = str_replace("\n", '</br>', $first);
400-
$first = str_replace(' ', '&nbsp;', $first);
401-
$first = str_replace('<em>', '<span class="code-comparison-highlight">', $first);
402-
$first = str_replace('</em>', '</span>', $first);
403-
404-
$secondTitle = trim($secondCodeElm->getAttribute('title'));
405-
$secondTitle = str_replace(' ', '&nbsp;&nbsp;', $secondTitle);
406-
$second = trim($secondCodeElm->nodeValue);
407-
$second = str_replace('<?php', '&lt;?php', $second);
408-
$second = str_replace("\n", '</br>', $second);
409-
$second = str_replace(' ', '&nbsp;', $second);
410-
$second = str_replace('<em>', '<span class="code-comparison-highlight">', $second);
411-
$second = str_replace('</em>', '</span>', $second);
396+
$firstTitle = $this->formatCodeTitle($firstCodeElm);
397+
$first = $this->formatCodeSample($firstCodeElm);
398+
399+
$secondTitle = $this->formatCodeTitle($secondCodeElm);
400+
$second = $this->formatCodeSample($secondCodeElm);
412401

413402
$titleRow = '';
414403
if ($firstTitle !== '' || $secondTitle !== '') {
@@ -439,4 +428,43 @@ protected function getFormattedCodeComparisonBlock(DOMNode $node)
439428
}//end getFormattedCodeComparisonBlock()
440429

441430

431+
/**
432+
* Retrieve a code block title and prepare it for output as HTML.
433+
*
434+
* @param \DOMElement $codeElm The DOMElement object for a code block.
435+
*
436+
* @since 3.12.0
437+
*
438+
* @return string
439+
*/
440+
private function formatCodeTitle(DOMElement $codeElm)
441+
{
442+
$title = trim($codeElm->getAttribute('title'));
443+
return str_replace(' ', '&nbsp;&nbsp;', $title);
444+
445+
}//end formatCodeTitle()
446+
447+
448+
/**
449+
* Retrieve a code block contents and prepare it for output as HTML.
450+
*
451+
* @param \DOMElement $codeElm The DOMElement object for a code block.
452+
*
453+
* @since 3.12.0
454+
*
455+
* @return string
456+
*/
457+
private function formatCodeSample(DOMElement $codeElm)
458+
{
459+
$code = (string) $codeElm->nodeValue;
460+
$code = trim($code);
461+
$code = str_replace('<?php', '&lt;?php', $code);
462+
$code = str_replace(["\n", ' '], ['</br>', '&nbsp;'], $code);
463+
$code = str_replace(['<em>', '</em>'], ['<span class="code-comparison-highlight">', '</span>'], $code);
464+
465+
return $code;
466+
467+
}//end formatCodeSample()
468+
469+
442470
}//end class

0 commit comments

Comments
 (0)