blob: 9f77df809561566d57a7ac6f037bd34304c82129 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
<?php
namespace Engelsystem\Renderer\Twig\Extensions;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Twig_Extension as TwigExtension;
use Twig_Function as TwigFunction;
class Csrf extends TwigExtension
{
/** @var SessionInterface */
protected $session;
/**
* @param SessionInterface $session
*/
public function __construct(SessionInterface $session)
{
$this->session = $session;
}
/**
* @return TwigFunction[]
*/
public function getFunctions()
{
return [
new TwigFunction('csrf', [$this, 'getCsrfField'], ['is_safe' => ['html']]),
new TwigFunction('csrf_token', [$this, 'getCsrfToken']),
];
}
/**
* @return string
*/
public function getCsrfField()
{
return sprintf('<input type="hidden" name="_token" value="%s">', $this->getCsrfToken());
}
/**
* @return string
*/
public function getCsrfToken()
{
return $this->session->get('_token');
}
}
|