Use Symfony 3 (or 2) forms, without including the whole framework!
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
test
.gitignore
.travis.yml
LICENSE
README.md
UPGRADE-2.0.md
composer.json
phpunit.xml.dist

README.md

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.

Total Downloads Build Status

Installation

  1. Download Composer.
  2. Add to your composer.json
"require": {
    "hostnet/form-twig-bridge": ">=1.0"
}

  1. 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();
    
  2. Use the form factory to create your form, see the symfony docs.
  3. If you use Twig templates: Use the form factory and the twig environment like you'd normally do
  4. 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