From 1b70bbe62c543cadb0cc555a16200ad7bb16566b Mon Sep 17 00:00:00 2001 From: jmleroux Date: Wed, 23 Mar 2016 14:19:12 +0100 Subject: [PATCH] Code review by @stof --- src/Render/LocalSvgRenderer.php | 25 +++++++++++++++---------- src/Render/SvgFlatRender.php | 7 +++++-- src/Render/SvgFlatSquareRender.php | 7 +++++-- src/Render/SvgRender.php | 7 +++++-- 4 files changed, 30 insertions(+), 16 deletions(-) diff --git a/src/Render/LocalSvgRenderer.php b/src/Render/LocalSvgRenderer.php index 0cd5ae6..a7130d1 100644 --- a/src/Render/LocalSvgRenderer.php +++ b/src/Render/LocalSvgRenderer.php @@ -29,16 +29,9 @@ abstract class LocalSvgRenderer implements RenderInterface /** * @var TextSizeCalculatorInterface */ - protected $textSizeCalculator; + private $textSizeCalculator; /** - * @var string - */ - protected $templateName; - - /** - * Constructor. - * * @param TextSizeCalculatorInterface $textSizeCalculator */ public function __construct(TextSizeCalculatorInterface $textSizeCalculator = null) @@ -57,12 +50,17 @@ public function __construct(TextSizeCalculatorInterface $textSizeCalculator = nu */ public function render(Badge $badge) { - $template = $this->getTemplate($this->templateName); + $template = $this->getTemplate($this->getTemplateName()); $parameters = $this->buildParameters($badge); return $this->renderSvg($template, $parameters, $badge->getFormat()); } + /** + * @return string + */ + abstract protected function getTemplateName(); + /** * @param $format * @@ -103,6 +101,13 @@ protected function renderSvg($render, $parameters, $format) $render = str_replace(sprintf('{{ %s }}', $key), $variable, $render); } + // validate svg + libxml_use_internal_errors(true); + $xml = simplexml_load_string($render); + if (false === $xml) { + throw new \RuntimeException('Generated string is not a valid SVG'); + } + return Image::createFromString($render, $format); } @@ -111,7 +116,7 @@ protected function renderSvg($render, $parameters, $format) * * @return array */ - protected function buildParameters(Badge $badge) + private function buildParameters(Badge $badge) { $parameters = array(); diff --git a/src/Render/SvgFlatRender.php b/src/Render/SvgFlatRender.php index 1fa2895..9ef9e93 100644 --- a/src/Render/SvgFlatRender.php +++ b/src/Render/SvgFlatRender.php @@ -18,8 +18,6 @@ */ class SvgFlatRender extends LocalSvgRenderer { - protected $templateName = 'flat'; - /** * A list of all supported formats. * @@ -29,4 +27,9 @@ public function supportedFormats() { return array('flat', 'svg'); } + + protected function getTemplateName() + { + return 'flat'; + } } diff --git a/src/Render/SvgFlatSquareRender.php b/src/Render/SvgFlatSquareRender.php index 2af5818..439fbb2 100644 --- a/src/Render/SvgFlatSquareRender.php +++ b/src/Render/SvgFlatSquareRender.php @@ -18,8 +18,6 @@ */ class SvgFlatSquareRender extends LocalSvgRenderer { - protected $templateName = 'flat-square'; - /** * A list of all supported formats. * @@ -29,4 +27,9 @@ public function supportedFormats() { return array('flat-square'); } + + protected function getTemplateName() + { + return 'flat-square'; + } } diff --git a/src/Render/SvgRender.php b/src/Render/SvgRender.php index a04fd21..64812ea 100644 --- a/src/Render/SvgRender.php +++ b/src/Render/SvgRender.php @@ -21,8 +21,6 @@ */ class SvgRender extends LocalSvgRenderer { - protected $templateName = 'plastic'; - /** * A list of all supported formats. * @@ -32,4 +30,9 @@ public function supportedFormats() { return array('plastic'); } + + protected function getTemplateName() + { + return 'plastic'; + } }