]>
Commit | Line | Data |
---|---|---|
4f5b44bd NL |
1 | <?php |
2 | ||
3 | /* | |
4 | * This file is part of the Symfony package. | |
5 | * | |
6 | * (c) Fabien Potencier <fabien@symfony.com> | |
7 | * | |
8 | * For the full copyright and license information, please view the LICENSE | |
9 | * file that was distributed with this source code. | |
10 | */ | |
11 | ||
12 | namespace Symfony\Component\Form\Extension\Csrf; | |
13 | ||
14 | use Symfony\Component\Form\Extension\Csrf\Type; | |
15 | use Symfony\Component\Form\Extension\Csrf\CsrfProvider\CsrfProviderInterface; | |
16 | use Symfony\Component\Form\AbstractExtension; | |
17 | use Symfony\Component\Translation\TranslatorInterface; | |
18 | ||
19 | /** | |
20 | * This extension protects forms by using a CSRF token. | |
21 | * | |
22 | * @author Bernhard Schussek <bschussek@gmail.com> | |
23 | */ | |
24 | class CsrfExtension extends AbstractExtension | |
25 | { | |
26 | /** | |
27 | * @var CsrfProviderInterface | |
28 | */ | |
29 | private $csrfProvider; | |
30 | ||
31 | /** | |
32 | * @var TranslatorInterface | |
33 | */ | |
34 | private $translator; | |
35 | ||
36 | /** | |
37 | * @var null|string | |
38 | */ | |
39 | private $translationDomain; | |
40 | ||
41 | /** | |
42 | * Constructor. | |
43 | * | |
44 | * @param CsrfProviderInterface $csrfProvider The CSRF provider | |
45 | * @param TranslatorInterface $translator The translator for translating error messages. | |
46 | * @param null|string $translationDomain The translation domain for translating. | |
47 | */ | |
48 | public function __construct(CsrfProviderInterface $csrfProvider, TranslatorInterface $translator = null, $translationDomain = null) | |
49 | { | |
50 | $this->csrfProvider = $csrfProvider; | |
51 | $this->translator = $translator; | |
52 | $this->translationDomain = $translationDomain; | |
53 | } | |
54 | ||
55 | /** | |
56 | * {@inheritDoc} | |
57 | */ | |
58 | protected function loadTypeExtensions() | |
59 | { | |
60 | return array( | |
61 | new Type\FormTypeCsrfExtension($this->csrfProvider, true, '_token', $this->translator, $this->translationDomain), | |
62 | ); | |
63 | } | |
64 | } |