diff --git a/src/CssToInlineStyles.php b/src/CssToInlineStyles.php index 313880b..80f642a 100644 --- a/src/CssToInlineStyles.php +++ b/src/CssToInlineStyles.php @@ -11,6 +11,15 @@ class CssToInlineStyles { + private $cssConverter; + + public function __construct() + { + if (class_exists('Symfony\Component\CssSelector\CssSelectorConverter')) { + $this->cssConverter = new CssSelectorConverter(); + } + } + /** * Will inline the $css into the given $html * @@ -148,10 +157,10 @@ protected function inline(\DOMDocument $document, array $rules) $xPath = new \DOMXPath($document); foreach ($rules as $rule) { try { - if (class_exists('Symfony\Component\CssSelector\CssSelectorConverter')) { - $converter = new CssSelectorConverter(); - $expression = $converter->toXPath($rule->getSelector()); + if (null !== $this->cssConverter) { + $expression = $this->cssConverter->toXPath($rule->getSelector()); } else { + // Compatibility layer for Symfony 2.7 and older $expression = CssSelector::toXPath($rule->getSelector()); } } catch (ExceptionInterface $e) {