Skip to content

Twig Constraint

Warning: You are browsing the documentation for Symfony 7.3, which is no longer maintained.

Read the updated version of this page for Symfony 8.0 (the current stable version).

7.3

The Twig constraint was introduced in Symfony 7.3.

Validates that a given string contains valid Twig syntax. This is particularly useful when template content is user-generated or configurable, and you want to ensure it can be rendered by the Twig engine.

Note

Using this constraint requires having the symfony/twig-bridge package installed in your application (e.g. by running composer require symfony/twig-bridge).

Applies to property or method
Class Twig
Validator TwigValidator

Basic Usage

Apply the Twig constraint to validate the contents of any property or the returned value of any method:

1
2
3
4
5
6
7
use Symfony\Bridge\Twig\Validator\Constraints\Twig;

class Template
{
    #[Twig]
    private string $templateCode;
}
1
2
3
4
5
6
7
8
9
10
// src/Entity/Page.php
namespace App\Entity;

use Symfony\Bridge\Twig\Validator\Constraints\Twig;

class Page
{
    #[Twig]
    private string $templateCode;
}

Constraint Options

message

type: message default: This value is not a valid Twig template.

This is the message displayed when the given string does not contain valid Twig syntax:

1
2
3
4
5
6
7
// ...

class Page
{
    #[Twig(message: 'Check this Twig code; it contains errors.')]
    private string $templateCode;
}

This message has no parameters.

skipDeprecations

type: boolean default: true

If true, Twig deprecation warnings are ignored during validation. Set it to false to trigger validation errors when the given Twig code contains any deprecations:

1
2
3
4
5
6
7
// ...

class Page
{
    #[Twig(skipDeprecations: false)]
    private string $templateCode;
}

This can be helpful when enforcing stricter template rules or preparing for major Twig version upgrades.

This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.
TOC
    Version