Nelmio\SecurityBundle\Twig\Node\CSPNode::compile PHP Method

compile() public method

public compile ( Twig_Compiler $compiler )
$compiler Twig_Compiler
    public function compile(\Twig_Compiler $compiler)
    {
        $body = $this->getNode('body');
        if (null !== $this->sha) {
            $output = "\$this->env->getExtension('Nelmio\\SecurityBundle\\Twig\\NelmioCSPTwigExtension')->getListener()->addSha('{$this->directive}', '{$this->sha}');\necho ob_get_clean();\n";
        } elseif ($this->directive === 'script-src') {
            $output = "\$script = ob_get_clean();\n\$this->env->getExtension('Nelmio\\SecurityBundle\\Twig\\NelmioCSPTwigExtension')->getListener()->addScript(\$script);\necho \$script;\n";
        } elseif ($this->directive === 'style-src') {
            $output = "\$style = ob_get_clean();\n\$this->env->getExtension('Nelmio\\SecurityBundle\\Twig\\NelmioCSPTwigExtension')->getListener()->addStyle(\$style);\necho \$style;\n";
        } else {
            throw new \InvalidArgumentException(sprintf('Unable to compile for directive "%s"', $this->directive));
        }
        $compiler->addDebugInfo($this)->write("ob_start();\n")->subcompile($body)->write($output);
    }