hostnet/form-twig-bridge

Allows usage of the Symfony 2 form framework, rendered in twig, without using all of Symfony 2!

Installs: 10 162

Dependents: 1

Stars: 7

Watchers: 15

Forks: 6

Language: PHP

1.1.0 2015-06-01 08:55 UTC

README

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.

Total Downloads Build Status

Installation

  1. Download Composer.
  2. Add to your composer.json

    "require": {
        "hostnet/form-twig-bridge": ">=1.0"
    }
    
    
  3. 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();
    
  4. Use the form factory to create your form, see the symfony docs.
  5. If you use Twig templates: Use the form factory and the twig environment like you'd normally do
  6. 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 of setCsrfTokenManager 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 to Builder.
  • [Breaking] Removed setLocale from the TwigEnvironmentBuilder.

Running the unit-tests

  1. Clone the repository yourself
  2. Go to the directory of the clone
  3. Run composer.phar install
  4. Run phpunit