Skip to content
This repository has been archived by the owner on Mar 18, 2019. It is now read-only.
/ form-twig-bridge Public archive

Use Symfony 3 (or 2) forms, without including the whole framework!

License

Notifications You must be signed in to change notification settings

hostnet/form-twig-bridge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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\Form\Extension\Csrf\CsrfProvider\DefaultCsrfProvider;
    
    $csrf = new DefaultCsrfProvider('change this token');
    $translator_builder = new TranslatorBuilder();
    // $translator_builder->setLocale('nl_NL'); // Uncomment if you want a non-english locale
    $builder = new Builder();
    $environment = $builder
        ->setCsrfProvider($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.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