hostnet / form-twig-bridge
Allows usage of the Symfony 3 form framework, rendered in twig, without using all of Symfony 3!
Installs: 21 789
Dependents: 1
Suggesters: 0
Security: 0
Stars: 12
Watchers: 11
Forks: 5
Open Issues: 0
Requires
- php: >=5.6
- hostnet/path-composer-plugin-lib: ^1.0.0
- symfony/config: ^3.0.2
- symfony/form: ^3.0.2
- symfony/http-foundation: ^3.0.2
- symfony/translation: ^3.0.2
- symfony/twig-bridge: ^3.0.2
- symfony/validator: ^3.0.2
Requires (Dev)
- phpunit/phpunit: ^5.1.0
- symfony/security: ^3.0.2
README
Not maintained, not in use within Hostnet
Pull requests will be accepted
form-twig-bridge
This package might be nice for you if you
- Want to use the Symfony 2 form component
- With the Twig rendering
- But don't want to use all of Symfony 2
It's inspired by Bernhard Schussek's standalone-forms.
If you want to use more then just the form framework, and you're inside a Symfony 1 application, maybe the hnDependencyInjectionPlugin is more suitable for you.
Installation
- Download Composer.
- Add to your composer.json
"require": {
"hostnet/form-twig-bridge": ">=1.0"
}
- Use the builders to create a FormFactory and a Twig_Environment with the correct configuration:
use Hostnet\FormTwigBridge\Builder; use Symfony\Component\Security\Csrf\TokenStorage\NativeSessionTokenStorage; $csrf = new NativeSessionTokenStorage(); $translator_builder = new TranslatorBuilder(); // $translator_builder->setLocale('nl_NL'); // Uncomment if you want a non-english locale $builder = new Builder(); $environment = $builder ->setCsrfTokenManager($csrf) ->setTranslator($translator_builder->build()) ->createTwigEnvironmentBuilder()->build(); $factory = $builder->buildFormFactory();
- Use the form factory to create your form, see the symfony docs.
- If you use Twig templates: Use the form factory and the twig environment like you'd normally do
- If you use PHP templates, use the public methods of the PhpRenderer.
Initialize it with
new PhpRenderer($twig_environment)
Optional configuration options
Builder
enableAnnotationMapping
enables doctrine annotation mapping (requires doctrine/annotations)addFormExtension
adds your custom form extensions
TwigEnvironmentBuilder
prependTwigLoader
adds additional twig loaders that are called before the loader added by the form-twig-bridge. You can always add loaders yourself, even after building.setFormTheme
for a custom form theme, note that you will have to add a loader that loads your form theme
Changelog
1.1.0
- Now works with Symfony 2.7.0
- Deprecated
setCsrfProvider
in favour ofsetCsrfTokenManager
for Symfony 3.0 compatibility
1.0.1
- Can now be used inside a full-fletched Symfony2 framework.
1.0
- Upgraded from Symfony 2.1 to Symfony 2.3.
- [Breaking] Added
setTranslator
toBuilder
. - [Breaking] Removed
setLocale
from theTwigEnvironmentBuilder
.
Running the unit-tests
- Clone the repository yourself
- Go to the directory of the clone
- Run
composer.phar install
- Run
phpunit