Download the PHP package intaro/twig-sandbox-bundle without Composer
On this page you can find all versions of the php package intaro/twig-sandbox-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package twig-sandbox-bundle
TwigSandboxBundle
There is Twig-extension Sandbox which can be used to evaluate untrusted code and where access to unsafe properties and methods is prohibited. This bundle allows to configure security policy for sandbox.
Installation
TwigSandboxBundle requires Symfony 6.0 or higher.
Install the bundle:
Register the bundle in config/bundles.php
:
Usage
Define allowed properties and methods for your entities using attribute #[Sandbox]
.
Optionally you can add type
option for attribute (for example #[Sandbox(type: 'int')]
).
This option defines type of value that property stores or method returns.
In your application you can use annotation reader to extract value of type
option and use this value
to perform additional checks or any other actions, for example, use twig filters according to value of the option.
And use sandbox environment.
Validation
You can validate entity fields which contain twig templates with TwigSandbox validator.
Configure
Methods and properties
You can define allowed methods and properties of entities with attribute Intaro\TwigSandboxBundle\Attribute\Sandbox
. Example above.
Tags
Default list of the allowed tags:
You can override list in the parameter intaro.twig_sandbox.policy_tags
:
Filters
Default list of the allowed filters:
You can override list in the parameter intaro.twig_sandbox.policy_filters
:
Functions
Default list of the allowed functions:
You can override list in parameter intaro.twig_sandbox.policy_functions
:
Allowed types
Default list of allowed return types:
You can override list in parameter intaro.twig_sandbox.sandbox_annotation.value_types
:
Environment
You can set twig environment parameters:
Also, you might want to add extensions to your twig environment. Example how to add:
Development
Run tests
Install vendors:
Run php-cs-fixer, phpstan and phpunit:
All versions of twig-sandbox-bundle with dependencies
php Version ^8.1
psr/cache Version ~1.0|~2.0
symfony/framework-bundle Version ^6.0
symfony/validator Version ^6.0
twig/twig Version ^2.14 | ^3.0