scaytrase / symfony-storable-forms
Web-configurable forms
Requires
- php: >=5.4
- doctrine/orm: ~2.3
- scaytrase/symfony-autoregistry: ~2.0
- symfony/form: ~2.4
- symfony/validator: ~2.3
Requires (Dev)
- phpunit/phpunit: ~4.6@stable
- scaytrase/symfony-test-utils: ~1.0
Suggests
- scaytrase/symfony-form-extensions: For key-value collection functional
This package is not auto-updated.
Last update: 2022-02-01 12:40:53 UTC
README
Symfony2 Stored Forms Bundle
Description
This bundle was highly inspired by Drupal 6 CCK module mechanics. It allows to dynamically create custom web forms with highly customizable inputs without any change in the source code. The changes are only needed if the set of available field types should be extended.
Here is the attempt to reinvent the wheel on top of the Symfony2 Form components stored with Doctrine2.
Installation
The best way to install this bundle is to use composer
composer require "scaytrase/symfony-stored-forms-bundle:~3.0"
And include the bundle into the list of application bundles
class AppKernel extends Kernel { public function registerBundles() { $bundles = array( new Symfony\Bundle\FrameworkBundle\FrameworkBundle(), \\ .... new ScayTrase\StoredFormsBundle\StoredFormsBundle(),
Usage
The simplest way of usage is shown in the test suite
$string = new StringField(); $string->setName('string_type'); $text = new TextAreaField(); $text->setName('text_type'); $number = new NumberField(); $number->setName('number_type'); $choice = new ChoiceField(); $choice->setName('choice_type'); $choice->setChoices(array('choice1', 'choice2')); /** @var AbstractField[] $fields */ $fields = array($string, $text, $number, $choice); $builder = $this->factory->createBuilder('form'); foreach ($fields as $field) { $field->buildForm($builder); }
Then just the populate form either with manual FormInterface::submit($data)
call or via
FormInterface::handleRequest($request)
. Each field from the form will return the AbstractValue
object (see fields
classes for more information). Both fields and values are ready to be stored at the database.