33 lines
722 B
PHP
33 lines
722 B
PHP
|
<?php
|
||
|
namespace Framework\Twig;
|
||
|
|
||
|
use Framework\Middleware\CsrfMiddleware;
|
||
|
|
||
|
class CsrfExtension extends \Twig_Extension
|
||
|
{
|
||
|
|
||
|
/**
|
||
|
* @var CsrfMiddleware
|
||
|
*/
|
||
|
private $csrfMiddleware;
|
||
|
|
||
|
public function __construct(CsrfMiddleware $csrfMiddleware)
|
||
|
{
|
||
|
$this->csrfMiddleware = $csrfMiddleware;
|
||
|
}
|
||
|
|
||
|
public function getFunctions()
|
||
|
{
|
||
|
return [
|
||
|
new \Twig_SimpleFunction('csrf_input', [$this, 'csrfInput'], ['is_safe' => ['html']])
|
||
|
];
|
||
|
}
|
||
|
|
||
|
public function csrfInput()
|
||
|
{
|
||
|
return '<input type="hidden" ' .
|
||
|
'name="' . $this->csrfMiddleware->getFormKey() . '" ' .
|
||
|
'value="' . $this->csrfMiddleware->generateToken() . '"/>';
|
||
|
}
|
||
|
}
|