public function addPlaceholder(SourceEvent $event)
{
$source = $event->getTemplate();
$format = $this->placeholderFormat;
$placeholders = array();
$source = $this->processTwig($source, function ($twig, $source, $offset) use($format, &$placeholders) {
$before = $offset > 0 ? $source[$offset - 1] : '';
$id = '<' === $before || '/' === $before ? $twig : mt_rand();
$placeholder = sprintf($format, md5($id));
if (!in_array($before, array(' ', '<', '>', '/'), true)) {
$placeholder = ' ' . $placeholder;
}
$placeholders[$placeholder] = $twig;
return $placeholder;
});
$this->placeholders = $placeholders;
$event->setTemplate($source);
}