class FormBuilder extends FormConfigBuilder implements IteratorAggregate, FormBuilderInterface

A builder for creating {@link Form} instances.

Methods

__construct(string|int $name, string|null $dataClass, EventDispatcherInterface $dispatcher, FormFactoryInterface $factory, array $options = array())

Creates a new form builder.

$this
addEventListener(string $eventName, callable $listener, int $priority)

Adds an event listener to an event on this form.

$this
addEventSubscriber(EventSubscriberInterface $subscriber)

Adds an event subscriber for events on this form.

$this
addViewTransformer(DataTransformerInterface $viewTransformer, bool $forcePrepend = false)

Appends / prepends a transformer to the view transformer chain.

$this
resetViewTransformers()

Clears the view transformers.

$this
addModelTransformer(DataTransformerInterface $modelTransformer, bool $forceAppend = false)

Prepends / appends a transformer to the normalization transformer chain.

$this
resetModelTransformers()

Clears the normalization transformers.

getEventDispatcher()

Returns the event dispatcher used to dispatch form events.

string
getName()

Returns the name of the form used as HTTP parameter.

getPropertyPath()

Returns the property path that the form should be mapped to.

bool
getMapped()

Returns whether the form should be mapped to an element of its parent's data.

bool
getByReference()

Returns whether the form's data should be modified by reference.

bool
getInheritData()

Returns whether the form should read and write the data of its parent.

bool
getVirtual() deprecated

Alias of {@link getInheritData()}.

bool
getCompound()

Returns whether the form is compound.

getType()

Returns the form types used to construct the form.

getViewTransformers()

Returns the view transformers of the form.

getModelTransformers()

Returns the model transformers of the form.

getDataMapper()

Returns the data mapper of the form.

bool
getRequired()

Returns whether the form is required.

bool
getDisabled()

Returns whether the form is disabled.

bool
getErrorBubbling()

Returns whether errors attached to the form will bubble to its parent.

mixed
getEmptyData()

Returns the data that should be returned when the form is empty.

array
getAttributes()

Returns additional attributes of the form.

bool
hasAttribute(string $name)

Returns whether the attribute with the given name exists.

mixed
getAttribute(string $name, mixed $default = null)

Returns the value of the given attribute.

mixed
getData()

Returns the initial data of the form.

null|string
getDataClass()

Returns the class of the form data or null if the data is scalar or an array.

bool
getDataLocked()

Returns whether the form's data is locked.

getFormFactory()

Returns the form factory used for creating new forms.

string
getAction()

Returns the target URL of the form.

string
getMethod()

Returns the HTTP method used by the form.

getRequestHandler()

Returns the request handler used by the form.

bool
getAutoInitialize()

Returns whether the form should be initialized upon creation.

array
getOptions()

Returns all options passed during the construction of the form.

bool
hasOption(string $name)

Returns whether a specific option exists.

mixed
getOption(string $name, mixed $default = null)

Returns the value of a specific option.

$this
setAttribute(string $name, mixed $value)

Sets the value for an attribute.

$this
setAttributes(array $attributes)

Sets the attributes.

$this
setDataMapper(DataMapperInterface $dataMapper = null)

Sets the data mapper used by the form.

$this
setDisabled(bool $disabled)

Set whether the form is disabled.

$this
setEmptyData(mixed $emptyData)

Sets the data used for the client data when no value is submitted.

$this
setErrorBubbling(bool $errorBubbling)

Sets whether errors bubble up to the parent.

$this
setRequired(bool $required)

Sets whether this field is required to be filled out when submitted.

$this
setPropertyPath(null|string|PropertyPathInterface $propertyPath)

Sets the property path that the form should be mapped to.

$this
setMapped(bool $mapped)

Sets whether the form should be mapped to an element of its parent's data.

$this
setByReference(bool $byReference)

Sets whether the form's data should be modified by reference.

$this
setInheritData(bool $inheritData)

Sets whether the form should read and write the data of its parent.

setVirtual(bool $inheritData) deprecated

Alias of {@link setInheritData()}.

$this
setCompound(bool $compound)

Sets whether the form should be compound.

$this
setType(ResolvedFormTypeInterface $type)

Set the types.

$this
setData(mixed $data)

Sets the initial data of the form.

$this
setDataLocked(bool $locked)

Locks the form's data to the data passed in the configuration.

setFormFactory(FormFactoryInterface $formFactory)

Sets the form factory used for creating new forms.

$this
setAction(string $action)

Sets the target URL of the form.

$this
setMethod(string $method)

Sets the HTTP method used by the form.

$this
setRequestHandler(RequestHandlerInterface $requestHandler)

Sets the request handler used by the form.

$this
setAutoInitialize(bool $initialize)

Sets whether the form should be initialized automatically.

getFormConfig()

Builds and returns the form configuration.

static 
validateName(string|int $name)

Validates whether the given variable is a valid form name.

static bool
isValidName(string $name)

Returns whether the given variable contains a valid form name.

add(string|int|FormBuilderInterface $child, string|FormTypeInterface $type = null, array $options = array())

Adds a new field to this group. A field must have a unique name within the group. Otherwise the existing field is overwritten.

create(string $name, string|FormTypeInterface $type = null, array $options = array())

Creates a form builder.

get(string $name)

Returns a child by name.

remove(string $name)

Removes the field with the given name.

bool
has(string $name)

Returns whether a field with the given name exists.

array
all()

Returns the children.

count()

{@inheritdoc}

getForm()

Creates the form.

getIterator()

{@inheritdoc}

Details

at line line 49
__construct(string|int $name, string|null $dataClass, EventDispatcherInterface $dispatcher, FormFactoryInterface $factory, array $options = array())

Creates a new form builder.

Parameters

string|int $name The form name
string|null $dataClass The class of the form's data
EventDispatcherInterface $dispatcher The event dispatcher
FormFactoryInterface $factory
array $options The form options

in FormConfigBuilder at line line 208
$this addEventListener(string $eventName, callable $listener, int $priority)

Adds an event listener to an event on this form.

Parameters

string $eventName The name of the event to listen to
callable $listener The listener to execute
int $priority The priority of the listener. Listeners with a higher priority are called before listeners with a lower priority.

Return Value

$this The configuration object

in FormConfigBuilder at line line 222
$this addEventSubscriber(EventSubscriberInterface $subscriber)

Adds an event subscriber for events on this form.

Parameters

EventSubscriberInterface $subscriber

Return Value

$this The configuration object

in FormConfigBuilder at line line 236
$this addViewTransformer(DataTransformerInterface $viewTransformer, bool $forcePrepend = false)

Appends / prepends a transformer to the view transformer chain.

The transform method of the transformer is used to convert data from the normalized to the view format. The reverseTransform method of the transformer is used to convert from the view to the normalized format.

Parameters

DataTransformerInterface $viewTransformer
bool $forcePrepend If set to true, prepend instead of appending

Return Value

$this The configuration object

in FormConfigBuilder at line line 254
$this resetViewTransformers()

Clears the view transformers.

Return Value

$this The configuration object

in FormConfigBuilder at line line 268
$this addModelTransformer(DataTransformerInterface $modelTransformer, bool $forceAppend = false)

Prepends / appends a transformer to the normalization transformer chain.

The transform method of the transformer is used to convert data from the model to the normalized format. The reverseTransform method of the transformer is used to convert from the normalized to the model format.

Parameters

DataTransformerInterface $modelTransformer
bool $forceAppend If set to true, append instead of prepending

Return Value

$this The configuration object

in FormConfigBuilder at line line 286
$this resetModelTransformers()

Clears the normalization transformers.

Return Value

$this The configuration object

in FormConfigBuilder at line line 300
EventDispatcherInterface getEventDispatcher()

Returns the event dispatcher used to dispatch form events.

Return Value

EventDispatcherInterface The dispatcher

in FormConfigBuilder at line line 312
string getName()

Returns the name of the form used as HTTP parameter.

Return Value

string The form name

in FormConfigBuilder at line line 320
null|PropertyPathInterface getPropertyPath()

Returns the property path that the form should be mapped to.

Return Value

null|PropertyPathInterface The property path

in FormConfigBuilder at line line 328
bool getMapped()

Returns whether the form should be mapped to an element of its parent's data.

Return Value

bool Whether the form is mapped

in FormConfigBuilder at line line 336
bool getByReference()

Returns whether the form's data should be modified by reference.

Return Value

bool Whether to modify the form's data by reference

in FormConfigBuilder at line line 344
bool getInheritData()

Returns whether the form should read and write the data of its parent.

Return Value

bool Whether the form should inherit its parent's data

in FormConfigBuilder at line line 357
bool getVirtual() deprecated

deprecated since version 2.3, to be removed in 3.0. Use {@link getInheritData()} instead.

Alias of {@link getInheritData()}.

Return Value

bool

in FormConfigBuilder at line line 367
bool getCompound()

Returns whether the form is compound.

This property is independent of whether the form actually has children. A form can be compound and have no children at all, like for example an empty collection form.

Return Value

bool Whether the form is compound

in FormConfigBuilder at line line 375
ResolvedFormTypeInterface getType()

Returns the form types used to construct the form.

Return Value

ResolvedFormTypeInterface The form's type

in FormConfigBuilder at line line 383
DataTransformerInterface[] getViewTransformers()

Returns the view transformers of the form.

Return Value

DataTransformerInterface[] An array of {@link DataTransformerInterface} instances

in FormConfigBuilder at line line 391
DataTransformerInterface[] getModelTransformers()

Returns the model transformers of the form.

Return Value

DataTransformerInterface[] An array of {@link DataTransformerInterface} instances

in FormConfigBuilder at line line 399
DataMapperInterface getDataMapper()

Returns the data mapper of the form.

Return Value

DataMapperInterface The data mapper

in FormConfigBuilder at line line 407
bool getRequired()

Returns whether the form is required.

Return Value

bool Whether the form is required

in FormConfigBuilder at line line 415
bool getDisabled()

Returns whether the form is disabled.

Return Value

bool Whether the form is disabled

in FormConfigBuilder at line line 423
bool getErrorBubbling()

Returns whether errors attached to the form will bubble to its parent.

Return Value

bool Whether errors will bubble up

in FormConfigBuilder at line line 431
mixed getEmptyData()

Returns the data that should be returned when the form is empty.

Return Value

mixed The data returned if the form is empty

in FormConfigBuilder at line line 439
array getAttributes()

Returns additional attributes of the form.

Return Value

array An array of key-value combinations

in FormConfigBuilder at line line 447
bool hasAttribute(string $name)

Returns whether the attribute with the given name exists.

Parameters

string $name The attribute name

Return Value

bool Whether the attribute exists

in FormConfigBuilder at line line 455
mixed getAttribute(string $name, mixed $default = null)

Returns the value of the given attribute.

Parameters

string $name The attribute name
mixed $default The value returned if the attribute does not exist

Return Value

mixed The attribute value

in FormConfigBuilder at line line 463
mixed getData()

Returns the initial data of the form.

Return Value

mixed The initial form data

in FormConfigBuilder at line line 471
null|string getDataClass()

Returns the class of the form data or null if the data is scalar or an array.

Return Value

null|string The data class or null

in FormConfigBuilder at line line 479
bool getDataLocked()

Returns whether the form's data is locked.

A form with locked data is restricted to the data passed in this configuration. The data can only be modified then by submitting the form.

Return Value

bool Whether the data is locked

in FormConfigBuilder at line line 487
FormFactoryInterface getFormFactory()

Returns the form factory used for creating new forms.

Return Value

FormFactoryInterface The form factory

in FormConfigBuilder at line line 495
string getAction()

Returns the target URL of the form.

Return Value

string The target URL of the form

in FormConfigBuilder at line line 503
string getMethod()

Returns the HTTP method used by the form.

Return Value

string The HTTP method of the form

in FormConfigBuilder at line line 511
RequestHandlerInterface getRequestHandler()

Returns the request handler used by the form.

Return Value

RequestHandlerInterface The request handler

in FormConfigBuilder at line line 526
bool getAutoInitialize()

Returns whether the form should be initialized upon creation.

Return Value

bool returns true if the form should be initialized when created, false otherwise

in FormConfigBuilder at line line 534
array getOptions()

Returns all options passed during the construction of the form.

Return Value

array The passed options

in FormConfigBuilder at line line 542
bool hasOption(string $name)

Returns whether a specific option exists.

Parameters

string $name The option name,

Return Value

bool Whether the option exists

in FormConfigBuilder at line line 550
mixed getOption(string $name, mixed $default = null)

Returns the value of a specific option.

Parameters

string $name The option name
mixed $default The value returned if the option does not exist

Return Value

mixed The option value

in FormConfigBuilder at line line 558
$this setAttribute(string $name, mixed $value)

Sets the value for an attribute.

Parameters

string $name The name of the attribute
mixed $value The value of the attribute

Return Value

$this The configuration object

in FormConfigBuilder at line line 572
$this setAttributes(array $attributes)

Sets the attributes.

Parameters

array $attributes

Return Value

$this The configuration object

in FormConfigBuilder at line line 586
$this setDataMapper(DataMapperInterface $dataMapper = null)

Sets the data mapper used by the form.

Parameters

DataMapperInterface $dataMapper

Return Value

$this The configuration object

in FormConfigBuilder at line line 600
$this setDisabled(bool $disabled)

Set whether the form is disabled.

Parameters

bool $disabled Whether the form is disabled

Return Value

$this The configuration object

in FormConfigBuilder at line line 614
$this setEmptyData(mixed $emptyData)

Sets the data used for the client data when no value is submitted.

Parameters

mixed $emptyData The empty data

Return Value

$this The configuration object

in FormConfigBuilder at line line 628
$this setErrorBubbling(bool $errorBubbling)

Sets whether errors bubble up to the parent.

Parameters

bool $errorBubbling

Return Value

$this The configuration object

in FormConfigBuilder at line line 642
$this setRequired(bool $required)

Sets whether this field is required to be filled out when submitted.

Parameters

bool $required

Return Value

$this The configuration object

in FormConfigBuilder at line line 656
$this setPropertyPath(null|string|PropertyPathInterface $propertyPath)

Sets the property path that the form should be mapped to.

Parameters

null|string|PropertyPathInterface $propertyPath The property path or null if the path should be set automatically based on the form's name

Return Value

$this The configuration object

in FormConfigBuilder at line line 674
$this setMapped(bool $mapped)

Sets whether the form should be mapped to an element of its parent's data.

Parameters

bool $mapped Whether the form should be mapped

Return Value

$this The configuration object

in FormConfigBuilder at line line 688
$this setByReference(bool $byReference)

Sets whether the form's data should be modified by reference.

Parameters

bool $byReference Whether the data should be modified by reference

Return Value

$this The configuration object

in FormConfigBuilder at line line 702
$this setInheritData(bool $inheritData)

Sets whether the form should read and write the data of its parent.

Parameters

bool $inheritData Whether the form should inherit its parent's data

Return Value

$this The configuration object

in FormConfigBuilder at line line 721
setVirtual(bool $inheritData) deprecated

deprecated since version 2.3, to be removed in 3.0. Use {@link setInheritData()} instead.

Alias of {@link setInheritData()}.

Parameters

bool $inheritData Whether the form should inherit its parent's data

in FormConfigBuilder at line line 731
$this setCompound(bool $compound)

Sets whether the form should be compound.

Parameters

bool $compound Whether the form should be compound

Return Value

$this The configuration object

in FormConfigBuilder at line line 745
$this setType(ResolvedFormTypeInterface $type)

Set the types.

Parameters

ResolvedFormTypeInterface $type

Return Value

$this The configuration object

in FormConfigBuilder at line line 759
$this setData(mixed $data)

Sets the initial data of the form.

Parameters

mixed $data The data of the form in application format

Return Value

$this The configuration object

in FormConfigBuilder at line line 773
$this setDataLocked(bool $locked)

Locks the form's data to the data passed in the configuration.

A form with locked data is restricted to the data passed in this configuration. The data can only be modified then by submitting the form.

Parameters

bool $locked Whether to lock the default data

Return Value

$this The configuration object

in FormConfigBuilder at line line 787
setFormFactory(FormFactoryInterface $formFactory)

Sets the form factory used for creating new forms.

Parameters

FormFactoryInterface $formFactory

in FormConfigBuilder at line line 801
$this setAction(string $action)

Sets the target URL of the form.

Parameters

string $action The target URL of the form

Return Value

$this The configuration object

in FormConfigBuilder at line line 815
$this setMethod(string $method)

Sets the HTTP method used by the form.

Parameters

string $method The HTTP method of the form

Return Value

$this The configuration object

in FormConfigBuilder at line line 839
$this setRequestHandler(RequestHandlerInterface $requestHandler)

Sets the request handler used by the form.

Parameters

RequestHandlerInterface $requestHandler

Return Value

$this The configuration object

in FormConfigBuilder at line line 853
$this setAutoInitialize(bool $initialize)

Sets whether the form should be initialized automatically.

Should be set to true only for root forms.

Parameters

bool $initialize True to initialize the form automatically, false to suppress automatic initialization. In the second case, you need to call {@link FormInterface::initialize()} manually.

Return Value

$this The configuration object

at line line 195
FormConfigInterface getFormConfig()

Builds and returns the form configuration.

Return Value

FormConfigInterface

in FormConfigBuilder at line line 888
static validateName(string|int $name)

Validates whether the given variable is a valid form name.

Parameters

string|int $name The tested form name

Exceptions

UnexpectedTypeException if the name is not a string or an integer
InvalidArgumentException if the name contains invalid characters

in FormConfigBuilder at line line 916
static bool isValidName(string $name)

Returns whether the given variable contains a valid form name.

A name is accepted if it

  • is empty
  • starts with a letter, digit or underscore
  • contains only letters, digits, numbers, underscores ("_"), hyphens ("-") and colons (":")

Parameters

string $name The tested form name

Return Value

bool Whether the name is valid

at line line 59
FormBuilderInterface add(string|int|FormBuilderInterface $child, string|FormTypeInterface $type = null, array $options = array())

Adds a new field to this group. A field must have a unique name within the group. Otherwise the existing field is overwritten.

If you add a nested group, this group should also be represented in the object hierarchy.

Parameters

string|int|FormBuilderInterface $child
string|FormTypeInterface $type
array $options

Return Value

FormBuilderInterface

at line line 95
FormBuilderInterface create(string $name, string|FormTypeInterface $type = null, array $options = array())

Creates a form builder.

Parameters

string $name The name of the form or the name of the property
string|FormTypeInterface $type The type of the form or null if name is a property
array $options The options

Return Value

FormBuilderInterface

at line line 115
FormBuilderInterface get(string $name)

Returns a child by name.

Parameters

string $name The name of the child

Return Value

FormBuilderInterface

Exceptions

InvalidArgumentException if the given child does not exist

at line line 135
FormBuilderInterface remove(string $name)

Removes the field with the given name.

Parameters

string $name

Return Value

FormBuilderInterface

at line line 149
bool has(string $name)

Returns whether a field with the given name exists.

Parameters

string $name

Return Value

bool

at line line 169
array all()

Returns the children.

Return Value

array

at line line 183
count()

{@inheritdoc}

at line line 209
FormInterface getForm()

Creates the form.

Return Value

FormInterface The form

at line line 237
FormBuilderInterface[] getIterator()

{@inheritdoc}

Return Value

FormBuilderInterface[]