Commit Graph

1271 Commits

Author SHA1 Message Date
Bernhard Schussek
400c95bb4d [Form] Replace methods in ChoiceView by public properties (PHP +100ms, Twig +400ms) 2012-07-21 12:56:11 +02:00
Bernhard Schussek
d072f35ea0 [Form] The properties of FormView are now accessed directly in order to increase performance (PHP +200ms, Twig +150ms) 2012-07-21 12:56:11 +02:00
parhs
5bfc25e6b3 Fixed buildViewBottomUp docs 2012-07-21 00:54:17 +03:00
Jordi Boggiano
c81b2ad3e2 [Form] Rename UnmodifiableFormConfig to ImmutableFormConfig 2012-07-20 01:18:42 +02:00
Artem Lopata (bumz)
89975ef9d6 Added more verbose message for exception when form types have wrong getName method 2012-07-18 12:37:22 +03:00
Bernhard Schussek
1474aa5fa2 [Form] Fixed consideration of Twig's template inheritance and added another performance-improving check 2012-07-17 09:02:04 +02:00
Bernhard Schussek
b4ec7f54eb Fixed my rubbish English 2012-07-16 21:54:46 +02:00
Bernhard Schussek
d11f8b5e9e [Form] Fixed passing of variables in the FormRenderer 2012-07-16 21:39:30 +02:00
Bernhard Schussek
629093ed25 [Form] Extracted common parts of FormHelper and FormExtension into separate classes 2012-07-16 21:39:27 +02:00
Bilal Amarni
b4d1bdf9e6 [Form] added a bc break note about the tag alias matching 2012-07-15 16:34:11 +03:00
Fabien Potencier
cd24e6ea8f Revert "raised the minimum version of PHP to 5.3.4 (closes #3856)"
This reverts commit 2dcc44897e.
2012-07-15 12:13:51 +02:00
Alexander
33f29ed174 [Form] '@group benchmark' for form performance tests 2012-07-14 16:20:31 +02:00
Yaroslav Kiliba
dbd169f82e [Form] Error in the SimpleFormTest case. 2012-07-14 16:02:46 +03:00
Fabien Potencier
c99b10804b merged branch stof/form_safeguard (PR #4910)
Commits
-------

6489a65 [Form] Added an exception for invalid type services

Discussion
----------

[Form] Added an exception for invalid type services

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes [![Build Status](https://secure.travis-ci.org/stof/symfony.png?branch=form_safeguard)](http://travis-ci.org/stof/symfony) (Travis fails randomly for the performance test)
Fixes the following tickets: -
Todo: -

Before the introduction of the FormRegistry, the getName() method was
never used for types registered through the DI container. The
FormRegistry now uses the getName() method and missconfigured services
will trigger a notice.
This was reported in FriendsOfSymfony/FOSCommentBundle#234
2012-07-14 13:41:41 +02:00
Christophe Coevoet
6489a65960 [Form] Added an exception for invalid type services
Before the introduction of the FormRegistry, the getName() method was
never used for types registered through the DI container. The
FormRegistry now uses the getName() method and missconfigured services
will trigger a notice.
This was reported in FriendsOfSymfony/FOSCommentBundle#234
2012-07-14 13:04:03 +02:00
Bernhard Schussek
69e5e58629 [Form] Individual rows of CollectionType cannot be styled anymore for performance reasons 2012-07-14 12:10:29 +02:00
Tobias Schultze
ffd8c1e773 [Form] add thrown exceptions to FormRegistryInterface 2012-07-14 00:14:36 +03:00
Fabien Potencier
a27aeda8f4 merged branch bschussek/performance (PR #4882)
Commits
-------

cd7835d [Form] Cached the form type hierarchy in order to improve performance
2ca753b [Form] Fixed choice list hashing in DoctrineType
2bf4d6c [Form] Fixed FormFactory not to set "data" option if not explicitely given
7149d26 [Form] Removed invalid PHPDoc text

Discussion
----------

[Form] WIP Improved performance of form building

Bug fix: no
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: **Update the Silex extension**

This PR is work in progress and up for discussion. It increases the performance of FormFactory::createForm() on a specific, heavy-weight form from **0.848** to **0.580** seconds.

Before, the FormFactory had to traverse the hierarchy and calculate the default options of each FormType everytime a form was created of that type.

Now, FormTypes are wrapped within instances of a new class `ResolvedFormType`, which caches the parent type, the type's extensions and its default options.

The updated responsibilities: `FormFactory` is a registry and proxy for `ResolvedFormType` objects, `FormType` specifies how a form can be built on a specific layer of the type hierarchy (e.g. "form", or "date", etc.) and `ResolvedFormType` *does the actual building* across all layers of the hierarchy (by delegating to the parent type, which delegates to its parent type etc.).

---------------------------------------------------------------------------

by schmittjoh at 2012-07-12T18:25:40Z

Maybe ResolvedFormType

---------------------------------------------------------------------------

by jmather at 2012-07-13T02:56:38Z

I really like ResolvedFormType. That's the naming method I took for my tag parser that handes the same conceptual issue.

---------------------------------------------------------------------------

by axelarge at 2012-07-13T05:25:00Z

ResolvedFormType sounds very clear.
This change is great and I desperately hope to see more of this kind

---------------------------------------------------------------------------

by Baachi at 2012-07-13T06:41:26Z

Yes `ResolvedFormType` sounds good :) 👍

---------------------------------------------------------------------------

by fabpot at 2012-07-13T07:11:33Z

I like `ResolvedFormType` as well.

---------------------------------------------------------------------------

by henrikbjorn at 2012-07-13T07:46:48Z

👍 `ResolvedFormType` :shipit:

---------------------------------------------------------------------------

by stof at 2012-07-13T18:01:51Z

This looks good to me
2012-07-13 21:26:31 +02:00
Fabien Potencier
2dcc44897e raised the minimum version of PHP to 5.3.4 (closes #3856)
We've raised the minimum version of PHP because of a PHP
bug before 5.3.4:

https://bugs.php.net/bug.php?id=52083
https://bugs.php.net/bug.php?id=50027
2012-07-13 21:22:46 +02:00
Bernhard Schussek
cd7835d8d2 [Form] Cached the form type hierarchy in order to improve performance 2012-07-13 20:39:30 +02:00
Bernhard Schussek
2bf4d6cff4 [Form] Fixed FormFactory not to set "data" option if not explicitely given 2012-07-13 12:12:25 +02:00
Bernhard Schussek
7149d268b6 [Form] Removed invalid PHPDoc text 2012-07-12 19:41:56 +02:00
Bernhard Schussek
8298d8c260 [Form] Improved ChoiceType performance by caching ChoiceList objects 2012-07-12 12:35:56 +02:00
Bernhard Schussek
c919b81ca9 [Form] Fixed TransformationFailedExceptions to be caught in the model transformers 2012-07-11 16:50:44 +02:00
Bernhard Schussek
f06203a640 [Form] Improved ValidatorTypeGuesser to interpret the constraints True and False 2012-07-11 16:46:06 +02:00
Bernhard Schussek
d661837ec0 [Validator] Reverted the changes done to the Size constraint in 3a5e84f4a7 2012-07-11 11:43:13 +02:00
Bernhard Schussek
d84b689529 [Validator] Added the constraints MinCount and MaxCount 2012-07-11 11:43:13 +02:00
Bernhard Schussek
1a732e4983 [Validator] Removed the Range constraint as it duplicates functionality given in Min and Max 2012-07-11 11:43:13 +02:00
Bernhard Schussek
92abf5aace [Form] Enabled error bubbling from the parts of a date/time field to the main field 2012-07-11 10:34:15 +02:00
Bernhard Schussek
7a76dbad20 [Form] Renamed the options "data_timezone" and "user_timezone" 2012-07-11 09:44:09 +02:00
Bernhard Schussek
655d645568 [Form] Fixed tests failing on systems with timezones other than +01:00 2012-07-11 09:34:01 +02:00
Bernhard Schussek
ded6c0305c [Form] DateTimeType now handles RFC 3339 dates as provided by HTML5 2012-07-11 09:06:31 +02:00
Bernhard Schussek
7e8b622802 [Form] Added the option "format" to DateTimeType 2012-07-10 17:23:19 +02:00
Bernhard Schussek
9eeb20044f [Form] Changed the default format of DateType to "yyyy-MM-dd" to support HTML 5 out of the box 2012-07-10 16:10:57 +02:00
Bernhard Schussek
d621a76f28 [Form] Improved DateTimeType code 2012-07-10 15:18:47 +02:00
Bernhard Schussek
5b057f89b0 [Form] Fixed DateType to use "format" for creating the year and day choices 2012-07-10 14:53:17 +02:00
Fabien Potencier
5487a1f076 merged branch ChrisTickner/formbuilder_remove_bug_fix (PR #4826)
Commits
-------

f71e2a8 [Form] FormBuilder Bug Fix: remove() was not properly removing children

Discussion
----------

[Form] FormBuilder Bug Fix: remove() was not properly removing children

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: #4803
License of the code: MIT

FormBuilder initially sets unresolved children as NULL, until resolved.
 If FormBuilder::remove() is called before that child is resolved, the
if statement turns false, because isset(null) is false, when it should
be true.  Instead, we should check to see if the key exists, and if so,
process and unset it.

Closes #4803

---------------------------------------------------------------------------

by bschussek at 2012-07-10T07:41:55Z

Can you please add a test covering this case?

---------------------------------------------------------------------------

by ChrisTickner at 2012-07-10T09:43:07Z

Sure, added a test case.  It fails before the patch and passes after.

---------------------------------------------------------------------------

by bschussek at 2012-07-10T09:47:06Z

Thanks. Can you please add a comment to the test with the URL of this PR? Also, please squash your commits into one when your done.

---------------------------------------------------------------------------

by ChrisTickner at 2012-07-10T10:02:16Z

Oops, I deleted the remote branch and re-pushed without realizing we'd lose some history on this PR page.  Live and learn I suppose.

---------------------------------------------------------------------------

by bschussek at 2012-07-10T10:18:20Z

Thanks!
2012-07-10 12:18:45 +02:00
Chris Tickner
f71e2a8c7a [Form] FormBuilder Bug Fix: remove() was not properly removing children
FormBuilder initially sets unresolved children as NULL, until resolved.
 If FormBuilder::remove() is called before that child is resolved, the
if statement turns false, because isset(null) is false, when it should
be true.  Instead, we should check to see if the key exists, and if so,
process and unset it.

Closes #4803
2012-07-10 06:56:48 -03:00
Bernhard Schussek
87fe4871cd Revert "[Form] Add default validation to TextType field (and related)"
This reverts commit 49d2685bff.

Conflicts:

	src/Symfony/Component/Form/Extension/Core/DataTransformer/ValueToStringTransformer.php
	src/Symfony/Component/Form/Extension/Core/Type/TextType.php
	src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/ValueToStringTransformerTest.php
	src/Symfony/Component/Form/Tests/Extension/Core/Type/UrlTypeTest.php
2012-07-10 11:56:29 +02:00
Fabien Potencier
7f0274462f merged branch SamsonIT/property_path_error (PR #4829)
Commits
-------

6ad4018 [Form] Also display the hint about adder/remover on invalid property access

Discussion
----------

[Form] Also display the hint about adder/remover on invalid property access

Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -

This PR follows up #4777. In this case the hint about adders and removers is also added when a property is found, but is not public, a common case.
2012-07-10 10:52:04 +02:00
Bernhard Schussek
c6cb8b2855 [Form] Removed unused option "inline" that was introduced by accident 2012-07-10 10:49:15 +02:00
Bart van den Burg
6ad4018ff5 [Form] Also display the hint about adder/remover on invalid property access 2012-07-10 10:23:34 +02:00
Bernhard Schussek
854daa8f83 [Form] Fixed errors not to be added onto non-synchronized forms 2012-07-10 10:03:06 +02:00
Bernhard Schussek
e8bb834a54 [Form] Fixed data to be written back by PropertyPath if it cannot be handled by reference 2012-07-10 09:38:32 +02:00
Fabien Potencier
4bab36b2c7 merged branch bschussek/issue3899 (PR #4813)
Commits
-------

9c94b48 [Form] Fixed the "data" option to supersede default data set in the model

Discussion
----------

[Form] Fixed the "data" option to supersede default data set in the model

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: #3899
Todo: -
2012-07-10 08:22:37 +02:00
Fabien Potencier
feab81117b merged branch bschussek/bind_request (PR #4811)
Commits
-------

7727de7 [Form] Deprecated Form::bindRequest() and replaced it by a PRE_BIND listener

Discussion
----------

[Form] Deprecated Form::bindRequest() and replaced it by a PRE_BIND listener

Bug fix: no
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -

Instead of `bindRequest`, you should now simply call `bind`:

Before:

```
$form->bindRequest($request);
```

After:

```
$form->bind($request);
```
2012-07-10 08:21:54 +02:00
Fabien Potencier
578d799dc8 merged branch umpirsky/patch-3 (PR #4815)
Commits
-------

55ac686 Serbian Latin translation updated.

Discussion
----------

Serbian Latin translation updated.
2012-07-10 07:45:54 +02:00
Саша Стаменковић
55ac686f6c Serbian Latin translation updated. 2012-07-09 23:42:28 +03:00
Саша Стаменковић
ec8c023143 Serbian Cyrillic translation updated. 2012-07-09 23:42:25 +03:00
Bernhard Schussek
9c94b48eeb [Form] Fixed the "data" option to supersede default data set in the model 2012-07-09 21:04:24 +02:00
Bernhard Schussek
7727de73e5 [Form] Deprecated Form::bindRequest() and replaced it by a PRE_BIND listener 2012-07-09 20:34:45 +02:00
Bernhard Schussek
c0a520792b [Form] Prevented duplicate validation of form constraints 2012-07-09 19:28:39 +02:00
Fabien Potencier
22fea110a5 merged branch bschussek/revert_circ_ref (PR #4807)
Commits
-------

eba7dfe Revert "[Form] added a circular reference safeguard for form type"

Discussion
----------

Revert "[Form] added a circular reference safeguard for form type"

This reverts commit ea93e4cafa.

Conflicts:

	src/Symfony/Component/Form/FormBuilder.php
	src/Symfony/Component/Form/FormFactory.php
2012-07-09 18:45:58 +02:00
Bernhard Schussek
eba7dfeb8a Revert "[Form] added a circular reference safeguard for form type"
This reverts commit ea93e4cafa.

Conflicts:

	src/Symfony/Component/Form/FormBuilder.php
	src/Symfony/Component/Form/FormFactory.php
2012-07-09 18:42:18 +02:00
Fabien Potencier
2cf1a0a7e8 merged branch bschussek/issue4615 (PR #4799)
Commits
-------

df5bb4a [Form] Unified rendering of errors for nested elements

Discussion
----------

[Form] Unified rendering of errors for nested elements

Bug fix: yes
Feature addition: no
Backwards compatibility break: yes?
Symfony2 tests pass: yes
Fixes the following tickets: #4615
Todo: -
2012-07-09 18:41:53 +02:00
Fabien Potencier
35e8d086ed merged branch bschussek/issue4450 (PR #4806)
Commits
-------

1345360 [Form] Fixed PropertyPath handling of offsetGet() that returns a constant value
6e1462e [Form] Fixed PropertyPath handling of __get() method that returns a constant

Discussion
----------

[Form] Fixed "Indirect modification.." exceptions in PropertyPath

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: #4450, #4535?, #4612
Todo: -
2012-07-09 18:25:40 +02:00
Bernhard Schussek
1345360e3f [Form] Fixed PropertyPath handling of offsetGet() that returns a constant value 2012-07-09 18:21:55 +02:00
Bernhard Schussek
6e1462e0c0 [Form] Fixed PropertyPath handling of __get() method that returns a constant 2012-07-09 18:15:56 +02:00
Bernhard Schussek
e6b5595f79 [Form] Fixed display of empty values in DateType, TimeType and DateTimeType if they are not required 2012-07-09 17:53:01 +02:00
Bernhard Schussek
14e293fc66 [Form] Refactored processing of the "empty_value" option in DateType 2012-07-09 17:20:48 +02:00
Fabien Potencier
38c30b71bd merged branch bschussek/issue3864 (PR #4801)
Commits
-------

040ba8f [Form] Fixed: ChoiceType omits the "empty_value" option if the choices contain an empty element

Discussion
----------

[Form] Fixed: ChoiceType omits the "empty_value" option if the choices contain an empty element

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: #3854, #3864
Todo: -
2012-07-09 16:56:11 +02:00
Bernhard Schussek
040ba8f3cd [Form] Fixed: ChoiceType omits the "empty_value" option if the choices contain an empty element 2012-07-09 16:52:31 +02:00
Fabien Potencier
8680571df0 merged branch frosas/start-session-on-generate-csrf-token (PR #4781)
Commits
-------

6d94f3e Ensure there is a session before getting the session id

Discussion
----------

[Form] Ensure there is a session before getting the session id

Solves "The CSRF token is invalid. Please try to resubmit the form" error when a form is generated before the session is started.

---------------------------------------------------------------------------

by fabpot at 2012-07-09T10:23:32Z

Adding a CSRF token only makes sense if you are on a page with a "user". If not (and if you don't use HTTP auth or whatever), then there is no need for a CSRF token.

---------------------------------------------------------------------------

by frosas at 2012-07-09T14:42:40Z

This PR doesn't change any logic on whether a CSRF token is added or not, it just fixes a bug when a token is requested.
2012-07-09 16:49:24 +02:00
Bernhard Schussek
df5bb4aefa [Form] Unified rendering of errors for nested elements 2012-07-09 16:14:58 +02:00
Fabien Potencier
c3ae854634 merged branch SamsonIT/error_explaining_lack_of_adder_remover (PR #4777)
Commits
-------

1fa22d9 [Form] Output a more usable error when PropertyPath has tried to find adders and getters, but failed to find them

Discussion
----------

[Form] Output a more usable error when PropertyPath has tried to find ad...

...ders and getters, but failed to find them

Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -

I've refactored the writeProperty method of propertypath in order to supply a better error message when writing has failed.

The writeProperty method itself now finds singulars (if a singular was not passed) for the private findAdderAndRemover method which allowed for some duplicate code to be removed and since the writeProperty now holds this data, it can provide a more verbose exception message.

---------------------------------------------------------------------------

by bschussek at 2012-07-09T13:54:35Z

Apart from the typo this PR looks good.

---------------------------------------------------------------------------

by Burgov at 2012-07-09T14:01:04Z

fixed&squashed
2012-07-09 16:11:12 +02:00
Bart van den Burg
1fa22d91ae [Form] Output a more usable error when PropertyPath has tried to find adders and getters, but failed to find them 2012-07-09 15:59:56 +02:00
Fabien Potencier
d100ffaf76 fixed CS 2012-07-09 14:54:20 +02:00
Fabien Potencier
03d22b74ec fixed CS (mainly method signatures) 2012-07-09 14:43:50 +02:00
Bernhard Schussek
2e1941fe55 [Form] Fixed failing test in AbstractLayoutTest 2012-07-08 16:56:41 +02:00
Francesc Rosàs
6d94f3eaa8 Ensure there is a session before getting the session id 2012-07-07 20:30:29 +02:00
Fabien Potencier
0a3436d105 merged branch bschussek/issue4693 (PR #4772)
Commits
-------

d6e1f39 [Form] Fixed FormBuilder to maintain order of its children

Discussion
----------

[Form] Fixed FormBuilder to maintain order of its children

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: #4693
Todo: -
2012-07-06 19:44:07 +02:00
Bernhard Schussek
d6e1f39d09 [Form] Fixed FormBuilder to maintain order of its children 2012-07-06 17:32:57 +02:00
Bernhard Schussek
5fe3f39ebc [Form] Made data mappers completely responsible for dealing with empty values. Removed duplication of code. 2012-07-06 16:46:24 +02:00
Bernhard Schussek
9bf6e8ba59 [Form] Compound forms now always need a data mapper. Otherwise an exception is thrown. 2012-07-06 15:33:06 +02:00
Roman Marintsenko
819fe346e0 [Form] refactored variable name to be more consistent with rest of the naming 2012-07-06 11:41:38 +03:00
Fabien Potencier
1cff9502ca merged branch lavoiesl/master (PR #4522)
Commits
-------

6f9eda9 [Form][Validator] Fixed generation of HTML5 pattern attribute based on Assert\Regex to remove delimiters.

Discussion
----------

[Form][Validator] Fixed generation of HTML5 pattern attribute based on Assert\Regex by removing delimiters or using a new option: htmlPattern.

Hopefully, this time is the good one…

* Fixes: [#3766, #4077, #4513, #4520, #4521]
* Bug fix: yes
* Feature addition: yes
* BC break: no
* Symfony2 tests pass: yes

In Issue #3766, it was asked that Assert\Regex generates HTML5 pattern attribute.
It was done in PR #4077, but the generated Regex is in delimited format which is not supported by HTML5.

Hence, `/[a-z]+/` would be converted to `[a-z]+`.
If flags are specified like in `/[a-z]+/i`, it cannot be converted and pattern validation will be disabled client-side. If is however now possible, using a new option, `htmlPattern`, to specify the pattern you want to be used.

Example:

```php
<?php
/**
 * @Assert\Regex(pattern="/^[0-9]+[a-z]*$/i", htmlPattern="^[0-9]+[a-zA-Z]*$")
 */
private $civic_number;
```

**Note**: [Documentation](http://symfony.com/doc/current/reference/constraints/Regex.html) should be updated accordingly.

---------------------------------------------------------------------------

by lavoiesl at 2012-06-08T15:45:17Z

God, I just found out you can "add more commits to this pull request by pushing to the master branch on lavoiesl/symfony"…

---------------------------------------------------------------------------

by travisbot at 2012-06-08T15:50:31Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1568634) (merged 2d767b41 into b84b46ba).

---------------------------------------------------------------------------

by petajaros at 2012-07-04T14:23:16Z

Anything new about this issue?

---------------------------------------------------------------------------

by lavoiesl at 2012-07-04T16:25:43Z

Alright, tests are passing using `phpunit -c phpunit.xml.dist --filter 'RegexValidatorTest'`. @travisbot reports errors because he can’t even start the tests due to dependencies, which is not related

---------------------------------------------------------------------------

by vicb at 2012-07-04T16:31:13Z

It should be ready to merge when you have taken the last comments into account. thanks.

---------------------------------------------------------------------------

by lavoiesl at 2012-07-04T16:39:05Z

So it seems this PR will finally pass, thanks a lot.

---------------------------------------------------------------------------

by vicb at 2012-07-04T17:03:35Z

Thank you for this PR and the changes.

---------------------------------------------------------------------------

by fabpot at 2012-07-04T17:10:20Z

@lavoiesl Can you squash your commits before I merge? Thanks.

---------------------------------------------------------------------------

by lavoiesl at 2012-07-04T17:25:18Z

There. I also left trace of some commits I did.

Thanks
2012-07-04 19:27:14 +02:00
Sébastien Lavoie
6f9eda9582 [Form][Validator] Fixed generation of HTML5 pattern attribute based on Assert\Regex to remove delimiters.
[Validator] Added delimiter escaping to Validator\Constraints\Regex::getNonDelimitedPattern

[Form][Validator] Added htmlPattern option for Regex Validation.

[Validator] Fixed Validator\Constraints\Regex::getNonDelimitedPattern variable declarations

[Validator] Fixed tests for Regex htmlPattern option (instead of html_pattern)

[Validation] tweaked generation of pattern to include .* when not anchors are present. Also removed the exception and made getNonDelimitedPattern private
2012-07-04 13:23:21 -04:00
Bernhard Schussek
45d967e95e [Form] Fixed: Empty forms can be compound too 2012-07-03 19:10:17 +02:00
Fabien Potencier
c0e4760b38 merged branch kriswallsmith/form/mv-humanize (PR #4645)
Commits
-------

c1e4166 moved create of default form label to view layer

Discussion
----------

move create of default form label to view layer

A small optimization if you provide custom labels in the view layer (i.e. `{{ form_label(form.name, 'Your name') }}`

```
Bug fix: no
Feature addition: no
Backwards compatibility break: yes
Symfony2 tests pass: yes
Fixes the following tickets: ~
Todo: ~
License of the code: MIT
Documentation PR: ~
```

---------------------------------------------------------------------------

by travisbot at 2012-06-24T14:45:17Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1694310) (merged 37f0b774 into 0d4b02e4).

---------------------------------------------------------------------------

by travisbot at 2012-06-24T15:03:44Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1694418) (merged c1e4166e into 0d4b02e4).
2012-07-01 22:38:07 +02:00
Fabien Potencier
cd08db8e2a merged branch shieldo/mockable_formbuilderinterface (PR #4572)
Commits
-------

6b5b625 [Form] added FormBuilderInterface in Tests namespace, so as to enable easy mocking

Discussion
----------

[Form] added FormBuilderInterface in Tests namespace, so as to enable ea...

...sy mocking

Adding a ``FormBuilderInterface`` in the ``Tests`` namespace, along same lines as ``FormInterface`` already there, for the purposes of being able to mock it straightforwardly (as ``FormBuilderInterface`` extends ``\Traversable``, and therefore creating a mock in PHPUnit causes a fatal error that the mock ``must implement interface Traversable as part of either Iterator or IteratorAggregate``).  Currently in the tests a ``FormBuilder`` object is used with a mock event dispatcher and form factory passed into the constructor, but this is long-winded to have to do in tests for code outside the framework.

---------------------------------------------------------------------------

by travisbot at 2012-06-13T22:03:12Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1613957) (merged 6b5b625a into c07e9163).

---------------------------------------------------------------------------

by bschussek at 2012-06-14T07:22:33Z

👍
2012-06-28 16:10:42 +02:00
Albert Casademont
9fabb3dc2f [Form] Camelize 'add' and 'remove' methods in the PropertyPath
This issue camelizes the 'add' and 'remove' methods,
as it is already done with the 'set' method.
This fixes a problem with properties like 'custom_messages',
where the 'add' and 'remove' methods are 'addCustom_message'
and 'removeCustom_message' instead of 'addCustomMessage'
and 'removeCustomMessage'.
2012-06-27 19:26:17 +02:00
Kris Wallsmith
c1e4166ead moved create of default form label to view layer 2012-06-24 07:57:42 -07:00
Fabien Potencier
55c6df995f merged 2.0 2012-06-20 21:33:33 +02:00
Alexander
8ff2838bb8 [Form] Fix component 'standalone' testsuite 2012-06-18 10:32:28 +02:00
Fabien Potencier
1ac2e9c217 merged branch shieldo/fix_docblock_typo (PR #4590)
Commits
-------

bfe5e58 [Form] fixed typo in docblock

Discussion
----------

[Form] fixed typo in docblock

---------------------------------------------------------------------------

by travisbot at 2012-06-15T20:03:08Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1630865) (merged bfe5e585 into f881d282).
2012-06-16 18:22:26 +02:00
Fabien Potencier
76b2ed46d6 moved validator translation files to the Form and Validator components to make them reusable (closes #4588) 2012-06-16 13:31:07 +02:00
Douglas Greenshields
bfe5e5856a [Form] fixed typo in docblock 2012-06-15 20:56:24 +01:00
Christophe Coevoet
a3c1299ac2 [Form] Added a missing use statement and fix a phpdoc 2012-06-14 09:53:49 +02:00
Douglas Greenshields
6b5b625a72 [Form] added FormBuilderInterface in Tests namespace, so as to enable easy mocking 2012-06-13 21:21:22 +01:00
Fabien Potencier
37550d23c6 merged branch Burgov/enhance_form_error_message (PR #4557)
Commits
-------

b5cf337 [Form] Enhanced the form error message

Discussion
----------

[Form] Enhanced the form error message

Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes

The error message on type mismatch is a bit obscure:

The form's view data is expected to be an instance of class Samson\Bundle\TRSBundle\Entity\Labour, but has the type object. You can avoid this error by setting the "data_class" option to null or by adding a view transformer that transforms object to Samson\Bundle\TRSBundle\Entity\Labour.

This commit changes it to:

The form's view data is expected to be an instance of class Samson\Bundle\TRSBundle\Entity\Labour, but is an instance of class Closure. You can avoid this error by setting the "data_class" option to null or by adding a view transformer that transforms an instance of Closure to an instance of class Samson\Bundle\TRSBundle\Entity\Labour.

---------------------------------------------------------------------------

by travisbot at 2012-06-12T14:04:08Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1601478) (merged 70a15df6 into 77839690).

---------------------------------------------------------------------------

by travisbot at 2012-06-12T14:06:31Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1601507) (merged 12ec4dbd into 77839690).

---------------------------------------------------------------------------

by travisbot at 2012-06-12T14:13:09Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1601517) (merged b5cf337c into 77839690).

---------------------------------------------------------------------------

by bschussek at 2012-06-12T18:21:31Z

👍 Thanks!
2012-06-12 20:26:00 +02:00
Bart van den Burg
b5cf337c9c [Form] Enhanced the form error message
The error message on type mismatch is a bit obscure:

The form's view data is expected to be an instance of class Samson\Bundle\TRSBundle\Entity\Labour, but has the type object. You can avoid this error by setting the "data_class" option to null or by adding a view transformer that transforms object to Samson\Bundle\TRSBundle\Entity\Labour.

This commit changes it to:

The form's view data is expected to be an instance of class Samson\Bundle\TRSBundle\Entity\Labour, but is an instance of Closure. You can avoid this error by setting the "data_class" option to null or by adding a view transformer that transforms an instance of Closure to an instance of Samson\Bundle\TRSBundle\Entity\Labour.
2012-06-12 16:02:18 +02:00
Bart van den Burg
1e83206e1d [Form] FormBuilderInterface->getParent() doesn't take any arguments (anymore) 2012-06-12 15:07:40 +02:00
Fabien Potencier
77839690d9 changed getName() to name on all Reflection* object calls (fixes #4555, refs https://bugs.php.net/bug.php?id=61384) 2012-06-12 14:23:19 +02:00
Fabien Potencier
ba16a51d37 changed getName() to name on all Reflection* object calls (fixes #4555, refs https://bugs.php.net/bug.php?id=61384) 2012-06-12 13:59:42 +02:00
Grégoire Paris
f541a54770 [Form] implement force append / prepend 2012-06-09 17:05:41 +02:00
Bernhard Schussek
a1cd8ae5d9 [Form] Removed invalid tests introduced again upon merge 2012-06-01 07:58:58 +02:00
Julien 'ruian' Galenski
26f5ac4aa0 Fix CS phpdoc FormConfigEditorInterface 2012-05-30 18:44:03 +02:00
Fabien Potencier
eba4aba364 merged 2.0 2012-05-30 13:44:37 +02:00
Fabien Potencier
223d187abc merged branch vicb/form_updates (PR #4432)
Commits
-------

a30f4a0 [Form] cleanup

Discussion
----------

[Form] cleanup

---------------------------------------------------------------------------

by travisbot at 2012-05-27T19:47:21Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1450050) (merged 09574f4b into adf07f1e).

---------------------------------------------------------------------------

by travisbot at 2012-05-27T19:57:42Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1450149) (merged a8c63d72 into adf07f1e).

---------------------------------------------------------------------------

by vicb at 2012-05-27T20:00:13Z

thanks a bunch @travisbot !

---------------------------------------------------------------------------

by travisbot at 2012-05-28T06:52:52Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1453555) (merged a30f4a03 into adf07f1e).

---------------------------------------------------------------------------

by bschussek at 2012-05-28T09:20:05Z

Thank you Victor! 👍
2012-05-30 07:22:13 +02:00
Fabien Potencier
3273d5189e merged branch vicb/minor_cleanup (PR #4430)
Commits
-------

59c4f55 a few minor changes

Discussion
----------

a few minor changes / cleanup

---------------------------------------------------------------------------

by travisbot at 2012-05-27T07:58:52Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1446431) (merged bb7ae326 into 9e951991).
2012-05-30 07:21:14 +02:00
Victor Berchet
a30f4a0350 [Form] cleanup 2012-05-28 08:48:06 +02:00
Victor Berchet
59c4f55290 a few minor changes 2012-05-28 08:46:08 +02:00
KUBO Atsuhiro
20b556dacb [Form] fixed a bug that caused input date validation not to be strict when using the single_text widget with a datetime field 2012-05-28 14:41:53 +09:00
KUBO Atsuhiro
7e3213cf3f [Form] fixed a bug that caused input date validation not to be strict when using the single_text widget with a date field 2012-05-28 14:41:48 +09:00
Bernhard Schussek
fc38e2b438 [Form] Fixed mapping of violations with empty paths to the root form 2012-05-27 14:53:01 +02:00
Fabien Potencier
adf07f1e53 merged 2.0 2012-05-27 12:30:27 +02:00
Bernhard Schussek
90516223ab Fixing email 2012-05-26 09:48:33 +02:00
Fabien Potencier
def316fcd9 merged branch shieldo/patch-5 (PR #4415)
Commits
-------

3c507ee fixed CS (whitespace)

Discussion
----------

fixed CS (whitespace)

---------------------------------------------------------------------------

by travisbot at 2012-05-25T17:50:41Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1435274) (merged 3c507ee4 into ff4d446c).
2012-05-26 08:38:27 +02:00
Fabien Potencier
05f9cfed0a merged branch yethee/form_cleanup (PR #4417)
Commits
-------

b4e2818 [Form] Using new methods instead of the deprecated

Discussion
----------

[Form] Using new methods instead of the deprecated

---------------------------------------------------------------------------

by travisbot at 2012-05-25T21:05:11Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1436891) (merged b4e28186 into ff4d446c).
2012-05-26 08:38:09 +02:00
Fabien Potencier
0a473895c8 merged branch Tobion/pp-refactor (PR #4418)
Commits
-------

e673a04 [OptionsResolver] clarify phpdoc
0cac404 [Form] refactored PropertyPth

Discussion
----------

PropertyPath refactoring + CS fix

---------------------------------------------------------------------------

by travisbot at 2012-05-25T21:49:01Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1437257) (merged e673a041 into ff4d446c).
2012-05-26 08:37:14 +02:00
Tobias Schultze
0cac4049f7 [Form] refactored PropertyPth 2012-05-25 23:39:40 +02:00
Deni
b4e2818608 [Form] Using new methods instead of the deprecated 2012-05-26 00:59:04 +04:00
Sergey Yuferev
c6881668fe [Form] fixing form type translation_domain inheritance
fixed bug with parent property
fix is_required field
fixed subform translation_domain inheritance
some translation_domain inheritance code refactoring
added form type translation_domain inheritance tests
changed methods place in form type test
changed arguments in createNamed method call in FormTypeTest
2012-05-25 22:00:33 +04:00
Douglas Greenshields
3c507ee47a fixed CS (whitespace) 2012-05-25 19:46:18 +02:00
Bernhard Schussek
8c23d7fdfe [Form] Fixed: "error_mapping" is not an attribute anymore, but an option 2012-05-25 16:50:31 +02:00
Victor Berchet
bc15e2d68b [Form] Some code cleanup 2012-05-25 12:34:17 +02:00
Victor Berchet
3d800afec3 [Form] Remove usages of deprecated features 2012-05-25 12:34:16 +02:00
Bernhard Schussek
ee803cd948 [Form] Renamed setVars() to addVars() in FormViewInterface 2012-05-25 12:34:16 +02:00
Bernhard Schussek
1c4f632f60 [Form] Fixed API docs and usage of FormBuilderInterface instead of FormBuilder 2012-05-25 12:34:16 +02:00
Bernhard Schussek
2e6cdd15c5 [Form] Inverted the logic of "single_control" and renamed it to "compound". The opposite is now "simple". 2012-05-25 12:34:16 +02:00
Bernhard Schussek
98a7c0cf5f [Form] Consolidated FormInterface, FormBuilderInterface and FormViewInterface 2012-05-25 12:34:16 +02:00
Bernhard Schussek
8e128fc644 [Form][OptionsResolver] Fixed typos 2012-05-25 12:34:16 +02:00
Bernhard Schussek
877d8f7195 [Form] Reversed the order of $type and $name in FormFactory::createNamed[Builder]() 2012-05-25 12:34:16 +02:00
Bernhard Schussek
33fecca210 [Form] Merged various form events and added class FormEvent 2012-05-25 12:34:16 +02:00
Bernhard Schussek
bec80157f9 [Form] Renamed client and application format to view and model format 2012-05-25 12:34:16 +02:00
Bernhard Schussek
8cae3282d8 [Form] setDefaultOptions() is now coded against OptionsResolverInterface 2012-05-25 12:34:16 +02:00
Bernhard Schussek
2cd99e80b6 [Form] Added FormBuilderInterface and FormViewInterface and cleaned up FormTypeInterface and FormTypeExtensionInterface 2012-05-25 12:28:17 +02:00
Bernhard Schussek
0ef4066983 [Form] Options are now passed to buildView() and buildViewBottomUp() 2012-05-25 12:28:17 +02:00
Bernhard Schussek
027259eba4 [Form] Changed getDefaultOptions() to setDefaultOptions(OptionsResolver $resolver) in FormTypeInterface 2012-05-25 12:28:17 +02:00
Bernhard Schussek
bad6d040d7 [Form] Added accessor FormConfigInterface::getByReference() and let Form clone objects if not by reference 2012-05-23 14:51:26 +02:00
Bernhard Schussek
fc2370104f [Form] Correctly highlighted BC breaks in the CHANGELOG 2012-05-23 14:46:49 +02:00
Bernhard Schussek
d1864c7d63 [Form] Fixed: Virtual forms are ignored when prepopulating a form 2012-05-23 14:46:45 +02:00
Fabien Potencier
e0238071d4 merged branch bschussek/dataclassfix (PR #4374)
Commits
-------

82c221a [Form] Fixed strict "data_class" check to work with instances of \ArrayAccess

Discussion
----------

[Form] Fixed collection type to work with recent Form changes

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -

---------------------------------------------------------------------------

by tristanbes at 2012-05-22T16:42:36Z

Ping @fabpot Could you please merge it ASAP, because this bugs breaks all forms containing collection type.

Thanks

---------------------------------------------------------------------------

by travisbot at 2012-05-22T16:54:24Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1401580) (merged 82c221a1 into 1a1403f5).
2012-05-22 19:03:35 +02:00
Bernhard Schussek
82c221a1dd [Form] Fixed strict "data_class" check to work with instances of \ArrayAccess 2012-05-22 18:24:59 +02:00
Kevin Dew
e92212ac13 [Form] Added valid attribute to a FormView 2012-05-22 12:51:19 +01:00
Fabien Potencier
55faa5468b merged branch TonyMalz/VALIDATORT_TYPEGUESS_FIX (PR #4251)
Commits
-------

f883953 TypeGuess fixed for Date/Time constraints
41bed29 [Form] fixed invalid 'type' option in ValidatorTypeGuesser for Date/TimeFields

Discussion
----------

[Form] fixed invalid 'type' option in ValidatorTypeGuesser for Date/TimeFields

Automatic field type guessing breaks, if you use any of the Date/Time
constraints (i.e. Symfony\Component\Validator\Constraints\DateTime), since these field types have no 'type' option defined.
(See getDefaultOptions() in DateTimeType.php)

---------------------------------------------------------------------------

by travisbot at 2012-05-10T15:25:16Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1296309) (merged 005bdbb0 into 68eca0f9).

---------------------------------------------------------------------------

by travisbot at 2012-05-18T15:50:39Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1367774) (merged f8839532 into a04acc89).

---------------------------------------------------------------------------

by TonyMalz at 2012-05-18T15:58:57Z

@bschussek Ok, changed it to 'input'

---------------------------------------------------------------------------

by bschussek at 2012-05-22T08:18:27Z

👍
2012-05-22 12:00:14 +02:00
Bernhard Schussek
af41a1a550 [Form] Fixed typos 2012-05-22 09:30:22 +02:00
Bernhard Schussek
ac6939441f [Form] Allowed native framework errors to be mapped as well 2012-05-22 09:30:21 +02:00
Bernhard Schussek
59d6b55137 [Form] Fixed: error mapping aborts if reaching an unsynchronized form 2012-05-22 09:30:21 +02:00
Bernhard Schussek
9eda5f5872 [Form] Fixed: RepeatedType now maps all errors to the first field 2012-05-22 09:30:21 +02:00
Bernhard Schussek
215b687b7b [Form] Added capability to process "." rules in "error_mapping" 2012-05-22 09:30:21 +02:00
Bernhard Schussek
c9c4900663 [Form] Fixed: errors are not mapped to unsynchronized forms anymore 2012-05-22 09:30:21 +02:00
Bernhard Schussek
c8b61d576b [Form] Renamed FormMapping to MappingRule and moved some logic there to make rules more extendable 2012-05-22 09:30:21 +02:00
Bernhard Schussek
d0d1fe6182 [Form] Added more information to UPGRADE and CHANGELOG 2012-05-22 09:30:21 +02:00
Bernhard Schussek
0c09a0e07e [Form] Made $name parameters optional in PropertyPathBuilder:replaceBy(Index|Property) 2012-05-22 09:30:21 +02:00
Bernhard Schussek
081c6437e4 [Form] Updated UPGRADE and CHANGELOG 2012-05-22 09:30:21 +02:00
Bernhard Schussek
bbffd1b00b [Form] Fixed index checks in PropertyPath classes 2012-05-22 09:30:21 +02:00
Bernhard Schussek
ea5ff77121 [Form] Fixed issues mentioned in the PR comments 2012-05-22 09:30:21 +02:00
Bernhard Schussek
306324ea0a [Form] Greatly improved the error mapping done in DelegatingValidationListener 2012-05-22 09:29:53 +02:00
Bernhard Schussek
5e87dd885c [Form] Added tests for the case when "property_path" is null or false. Instead of setting "property_path" to false, you should set "mapped" to false instead. 2012-05-22 09:29:53 +02:00
Bernhard Schussek
2301b1559e [Form] Tightened PropertyPath validation to reject any empty value (such as false) 2012-05-22 09:29:53 +02:00
Bernhard Schussek
7ff2a9b210 Revert "[Form] removed a constraint in PropertyPath as the path can definitely be an empty string for errors attached on the main form (when using a constraint defined with the 'validation_constraint' option)"
This reverts commit 5182a0c2c4.

PropertyPath instances should be empty. If you have an empty property path string, there is no need to create a PropertyPath instance for it.

Conflicts:

	tests/Symfony/Tests/Component/Form/PropertyPathTest.php
2012-05-22 09:29:53 +02:00
Bernhard Schussek
860dd1f7d8 [Form] Adapted Form to create a deterministic property path by default 2012-05-22 09:29:53 +02:00
Bernhard Schussek
03f50588c2 [Form] Fixed property name in PropertyPathMapperTest 2012-05-22 09:28:16 +02:00
Bernhard Schussek
c2a243f926 [Form] Made PropertyPath deterministic: "[prop]" always refers to indices (array or ArrayAccess), "prop" always refers to properties 2012-05-22 09:28:16 +02:00
Bernhard Schussek
29963400e8 [Form] Extracted FormConfig class to simplify the Form's constructor 2012-05-22 09:28:15 +02:00
Fabien Potencier
c01fed0c89 fixed CS 2012-05-21 22:25:19 +02:00
Tobias Schultze
5d1b3669c5 [Form] fix PhpDoc 2012-05-21 04:26:59 +02:00
Fabien Potencier
1407f112fc fixed CS 2012-05-20 18:17:03 +02:00
Fabien Potencier
26b489f499 fixed CS 2012-05-20 18:15:10 +02:00
Christian Raue
0f7835dc36 added missing dot in ValidationListener as follow-up to #3922 2012-05-19 15:30:12 +02:00
Fabien Potencier
58b924533a removed unused use statements 2012-05-19 09:24:13 +02:00
Fabien Potencier
d48d88a05a merged 2.0 2012-05-19 09:24:03 +02:00
Fabien Potencier
3bdf52a16a fixed CS 2012-05-18 19:42:42 +02:00
Fabien Potencier
e173d79e34 fixed CS 2012-05-18 19:37:58 +02:00
Tony Malzhacker
f8839532f8 TypeGuess fixed for Date/Time constraints 2012-05-18 17:46:49 +02:00
Tony Malzhacker
41bed29c80 [Form] fixed invalid 'type' option in ValidatorTypeGuesser for Date/TimeFields
Field type guessing breaks, if you use any of the Date/Time
constraints, since these field types have no 'type' default option
defined.
2012-05-18 17:46:49 +02:00
Fabien Potencier
5314836d3c merged branch Herzult/feature/collection_size_validator (PR #4149)
Commits
-------

3a5e84f [Validator] Add CollectionSize constraint

Discussion
----------

[Validator] Add CollectionSize constraint

Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -

I will also send a PR to the documentation as soon as this one is accepted.

---------------------------------------------------------------------------

by bschussek at 2012-04-29T08:24:28Z

-1

I dislike the rising amount of very specific constraints in the core. Can't we add this to Size?

---------------------------------------------------------------------------

by vicb at 2012-04-29T09:01:39Z

@bschussek #3918 implements what you propose but then the messages are not valid any more:

```php
<?php
    public $minMessage = 'This value should be {{ limit }} or more';
    public $maxMessage = 'This value should be {{ limit }} or less';
    public $invalidMessage = 'This value should be a valid number';
```

I can imagine 2 solutions:

- adding some more message,
- rename the `Size` constraint to `Range` and create a new `Size` constraint for arrays / countables.

What do you think ?

---------------------------------------------------------------------------

by bschussek at 2012-04-29T09:27:53Z

I'd prefer the second solution and merge `Size` with `SizeLength` as well.

---------------------------------------------------------------------------

by vicb at 2012-04-29T09:34:50Z

@bschussek It would make sense. @makasim @Herzult any one of you would like to contribute this (i.e. rename the current Size to Range and create a new Size supporting arrays / countables / strings) ?

---------------------------------------------------------------------------

by Herzult at 2012-04-29T14:31:12Z

Yep, I'm on it.

---------------------------------------------------------------------------

by stof at 2012-04-29T15:22:44Z

@Herzult could you take the other comment into account and merge SizeLength into you Size ?

---------------------------------------------------------------------------

by vicb at 2012-04-29T15:33:05Z

The guessers should also be modified (it might also affect the ODM which is in an other repo, if so it would be good to sync the changes).

---------------------------------------------------------------------------

by Herzult at 2012-04-29T16:38:19Z

@stof the problem merging SizeLength into Size is that they don't have the same required options & messages.

---------------------------------------------------------------------------

by Herzult at 2012-04-29T16:47:40Z

And what about renaming Range to Interval and SizeLength to IntervalLength?

---------------------------------------------------------------------------

by stof at 2012-04-29T16:54:38Z

Well, SizeLength is about matching the length of a string currently. Nothing related to intervals

---------------------------------------------------------------------------

by Herzult at 2012-04-29T17:29:40Z

Here are the current names:

 * **Size** for collection (countable) size
 * **Range** for numbers
 * **SizeLength** for strings

Merging **SizeLength** into **Size** is maybe not appropriate because collections and strings are different things. It'll be hard to find messages that fit both collections and strings. Maybe we had better to find a better name for both. What do you think?

About the ValidatorTypeGuesser, I'll update it as soon as we know ow to name the constraints.

---------------------------------------------------------------------------

by vicb at 2012-04-29T17:43:01Z

Size is a good name for both strings and "collections", could we have two sets of strings and select according to the type ?

---------------------------------------------------------------------------

by Herzult at 2012-04-29T22:39:55Z

I tried to merge them together, what do you think?

---------------------------------------------------------------------------

by vicb at 2012-04-30T06:52:37Z

I think your changes are great, may be @bschussek has more feedback. The ValidatorTypeGuesser and the translation are yet to be updated.

---------------------------------------------------------------------------

by hhamon at 2012-05-01T12:32:28Z

Am I missing something or `SizeLength` for strings is a duplicate for `MinLength` and `MaxLength` constraints?

---------------------------------------------------------------------------

by Herzult at 2012-05-02T13:29:36Z

Yep, that's true. But the only link between this PR and the SizeLength constraint is that I merged it to the one I introduced.

---------------------------------------------------------------------------

by Herzult at 2012-05-07T07:48:01Z

@bschussek what do you think?

---------------------------------------------------------------------------

by vicb at 2012-05-10T19:51:26Z

@Herzult this PR looks good to me, could you update the changelog and update guides, try to factorize the code and squash the commits ? Thanks.

---------------------------------------------------------------------------

by travisbot at 2012-05-11T15:42:35Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1306112) (merged 8d8e6443 into 4ac3bddb).

---------------------------------------------------------------------------

by vicb at 2012-05-11T21:42:21Z

* could #4259 be helpful ?
* please squash the commits.
* please create a PR / issue on [symfony-docs](https://github.com/symfony/symfony-docs)

thanks for the updates.

---------------------------------------------------------------------------

by travisbot at 2012-05-13T18:38:18Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1321123) (merged eeda9044 into 4ac3bddb).

---------------------------------------------------------------------------

by travisbot at 2012-05-13T18:45:12Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1321146) (merged 491ca19a into 8b54eb56).

---------------------------------------------------------------------------

by travisbot at 2012-05-14T11:29:39Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1326110) (merged 44865024 into 8b54eb56).

---------------------------------------------------------------------------

by vicb at 2012-05-14T11:49:37Z

@Herzult what about plural translations ?

---------------------------------------------------------------------------

by travisbot at 2012-05-14T16:52:37Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1328677) (merged 93480f95 into 46ffbd52).

---------------------------------------------------------------------------

by travisbot at 2012-05-14T17:03:13Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1328705) (merged 326c3b81 into 46ffbd52).

---------------------------------------------------------------------------

by vicb at 2012-05-14T20:19:18Z

thanks for the updates, this PR looks fine to me. @bschussek ?

---------------------------------------------------------------------------

by vicb at 2012-05-16T06:45:51Z

@Herzult can you squash your commits ?

---------------------------------------------------------------------------

by travisbot at 2012-05-16T11:20:44Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1344811) (merged 3a5e84f4 into 58b6ef23).
2012-05-16 14:22:22 +02:00
Antoine Hérault
3a5e84f4a7 [Validator] Add CollectionSize constraint
[Validator] Rename constraint Size to Range

[Validator] Rename constraint CollectionSize to Size

[Validator] Merge the SizeLength into the Size constraint

[Validator] Update messages in Size constraint for consistancy

[Validator] Add english and french translation for Size messages

[Validator] Tweak expected types for exceptions in SizeValidator

[Validator] Fix CS in SizeValidator

[Validator] Update the ValidatorTypeGuesser

[Validator] Tweak SizeValidator

[Validator] Update CHANGELOG

[Validator] Complete previous CHANGELOG updates

[Form] Update validator type guesser

[Validator] Pluralize collection size english messages

[Validator] Pluralize Size french messages
2012-05-16 13:15:05 +02:00
Fabien Potencier
41621e42e9 fixed phpdoc @param alignment 2012-05-15 22:19:31 +02:00
Fabien Potencier
f27f5969b6 fixed 2.0 merge 2012-05-15 22:15:08 +02:00
Fabien Potencier
ce9791246b fixed phpdoc @param alignment 2012-05-15 18:56:32 +02:00
Fabien Potencier
03d4b0264f merged 2.0 2012-05-15 18:49:53 +02:00
Fabien Potencier
bd07b8919d merged branch bschussek/options (PR #3968)
Commits
-------

95727ff [OptionsResolver] Updated PHP requirements to 5.3.3
1c5f6c7 [OptionsResolver] Fixed issues mentioned in the PR comments
d60626e [OptionsResolver] Fixed clear() and remove() method in Options class
2b46975 [OptionsResolver] Fixed Options::replace() method
16f7d20 [OptionsResolver] Improved implementation and clarity of the Options class
6ce68b1 [OptionsResolver] Removed reference to non-existing property
9c76750 [OptionsResolver] Fixed doc and block nesting
876fd9b [OptionsResolver] Implemented fluid interface
95454f5 [OptionsResolver] Fixed typos
256b708 [OptionsParser] Renamed OptionsParser to OptionsResolver
04522ca [OptionsParser] Added method replaceDefaults()
b9d053e [Form] Moved Options classes to new OptionsParser component

Discussion
----------

Extracted OptionsResolver component out of Form

Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -

![Travis Build Status](https://secure.travis-ci.org/bschussek/symfony.png?branch=options)

This PR refactors the options-related code of the Form component into a separate component. See the README file for usage examples.

---------------------------------------------------------------------------

by schmittjoh at 2012-04-17T18:11:03Z

To me it seems like we have some redundancy with the Config/Definition component. I'm wondering if these two can/should be merged somehow?

---------------------------------------------------------------------------

by kriswallsmith at 2012-04-17T18:14:44Z

I would also suggest merging this into the Config component. Its current name too closely resembles Python's optparser lib, which could create confusion.

---------------------------------------------------------------------------

by bschussek at 2012-04-17T18:18:49Z

Merge conflict artifacts are fixed now.

@schmittjoh Do we? Isn't the idea of the Config component to read complex configuration from different configuration providers? (YAML, XML, Annotations etc.)

The idea of this parser is to be highly performant and to be usable in simple classes. If this can be achieved with the Config component, I'm happy to learn more.

---------------------------------------------------------------------------

by schmittjoh at 2012-04-17T18:27:08Z

The config component is basically a super intelligent version of array_merge and the like.

About performance, I haven't really done any tests to say something about the impact. I think it's safe to say that it would be at least slower than your implementation in its current form due to the additional indirection. However, we could probably add a caching layer.

---------------------------------------------------------------------------

by bschussek at 2012-04-17T18:31:22Z

Have you checked the README I wrote? Are you sure the Config component is intended for the same purpose and not *way* too complex in this case?

---------------------------------------------------------------------------

by stof at 2012-04-17T18:51:14Z

You also forgot to update the ``replace`` section of the root composer.json file.

And regarding doing such thing with the Config Definition stuff, it would be more difficult: it builds the tree of values with their defaults, and then merges stuff coming from different sources. The form component however receives defaults from different places (which also define the allowed keys at the same time) and then receives user options only once. And it needs to handle easily default values which depend from other values. So I think both implementations are useful for different needs (however, we could argue about making it a subnamespace in the Config component, but this would add yet another different stuff in it)

---------------------------------------------------------------------------

by jalliot at 2012-04-17T18:58:03Z

@bschussek You need to add this component to the main composer.json too.

---------------------------------------------------------------------------

by lsmith77 at 2012-04-18T06:54:17Z

doesn't this overlap a bit with the ``TreeBuilder`` in the Config component?

---------------------------------------------------------------------------

by lsmith77 at 2012-04-18T06:59:12Z

ah just saw @stof's comment .. i think the biggest argument against TreeBuilder is that it was designed for a very specific purpose and performance wasn't one of them. where as Form needs something that performs fast. so yeah i do see different use cases, but i don't think this means we should have a new component.

furthermore while i haven't read the code in details i am surprised it doesn't make use of http://php.net/manual/en/function.array-replace-recursive.php to merge defaults into a user supplied options array.

---------------------------------------------------------------------------

by bschussek at 2012-04-18T08:10:49Z

@stof, @jalliot: Fixed.

> furthermore while i haven't read the code in details i am surprised it doesn't make use of http://php.net/manual/en/function.array-replace-recursive.php to merge defaults into a user supplied options array.

@lsmith77: Because that's not what this component does. The key feature of this component is to resolve default values of options that depend on the *concrete* values of other options. I invite you to read the README.

Is it a good idea to merge this into Config? I think that both components address different audiences and different purposes. The idea of this one is to initialize classes with simple, run-time provided arrays. The idea of Config is to load and validate complex configurations from storage providers, such as the filesystem.

---------------------------------------------------------------------------

by bschussek at 2012-04-18T08:18:48Z

Note: Not all relevant code of this component is shown in the diff. The (crucial) Options and LazyOption classes have only been moved out of Form.

---------------------------------------------------------------------------

by lsmith77 at 2012-04-18T08:20:02Z

> Is it a good idea to merge this into Config? I think that both components address different audiences and different purposes. The idea of this one is to initialize classes with simple, run-time provided arrays. The idea of Config is to load and validate complex configuration values from the filesystem (typically).

decoupled is all fine, but to me this feels a bit too granular. but i am just expressing a gut feeling here

---------------------------------------------------------------------------

by jalliot at 2012-04-18T08:34:03Z

I think too it should be included in the config component (maybe in a subnamespace). Indeed the behaviour is too different to be merged into the current component but its purpose is similar and is all about *configuration* (hence the name of the component). Otherwise we could also split the current Config component into smaller components as it seems to me there are already parts of it that are totally unrelated to each other.

---------------------------------------------------------------------------

by bschussek at 2012-04-18T11:30:55Z

@jalliot Can you go into detail which parts that are and what changes you suggest?

@kriswallsmith Any other naming suggestion?

---------------------------------------------------------------------------

by jalliot at 2012-04-18T11:34:35Z

@bschussek I don't know the current component well enough but that's the impression I had last time I looked at its code but I may be wrong.

---------------------------------------------------------------------------

by stof at 2012-04-18T19:30:43Z

@bschussek the Definition subnamespace of the Config component is standalone. It is not directly related to the Loader part

---------------------------------------------------------------------------

by bschussek at 2012-04-19T09:32:48Z

@stof So what do you recommend?

I think this is also a question of marketing. Is the Definition subnamespace intended to be used totally separately of the loaders? What are the use cases? If there are good use cases, it makes sense to me to extract the Definition part into a separate component. Otherwise not.

It is also a question of marketing, because the purpose of a component should be communicable in simple words (quoting @fabpot). The purpose of Config is (copied from the README):

> Config provides the infrastructure for loading configurations from different data sources and optionally monitoring these data sources for changes. There are additional tools for validating, normalizing and handling of defaults that can optionally be used to convert from different formats to arrays.

I think this purpose is completely different than that of OptionsParser.

---------------------------------------------------------------------------

by stof at 2012-04-19T11:39:50Z

The current description itself shows the current state: what is advocated as the main goal of the component (and was the original part) is the loader stuff. But the Definition part (mentioned as "additional tools") is bigger in term of LOC

---------------------------------------------------------------------------

by bschussek at 2012-04-19T11:55:17Z

@stof: Yes, this is a fact, but what's your opinion? How do we proceed with this PR?

---------------------------------------------------------------------------

by stof at 2012-04-19T12:21:44Z

Well, my opinion is that the current Config component may deserve to be split into 2 components (as someone may need only part of it). But this would be a huge BC break. @fabpot what do you think ?

---------------------------------------------------------------------------

by bschussek at 2012-04-23T10:14:57Z

@fabpot Can we merge this?

---------------------------------------------------------------------------

by fabpot at 2012-05-10T06:45:20Z

@bschussek I'm +1 for this PR but as mentioned by @kriswallsmith, we must find another name as `OptionsParser` immediately make me think of something related to the CLI.

---------------------------------------------------------------------------

by stof at 2012-05-10T06:47:45Z

However, after thinking about it again, I would vote for keeping it in its own component instead of adding yet another independant part in Config, to avoid forcing Form users to get the whole Config component

---------------------------------------------------------------------------

by bschussek at 2012-05-10T09:09:36Z

I'm having difficulties finding a better name. The main difference to CLI option parsers is that these actualy *parse* a string, while this class only receives an array of options (does not do any parsing). Otherwise both have the same purpose.

A couple of other suggestions:

* OptionsLoader (likely confused with our filesystem loaders)
* OptionsResolver
* OptionsMerger
* OptionsMatcher (not accurate)
* OptionsBuilder (likely confused with the builder pattern)
* OptionsJoiner
* OptionsBag (likely confused with the session bags)
* OptionsConfig (likely confused with Config)
* OptionsDefinition (likely confused with Config\Definition)
* OptionsSpec
* OptionsCombiner
* OptionsInitializer
* OptionsComposer

The difficulty is to find a name that best reflects its purpose:

```
$parser->setDefaults(...);
$parser->setRequired(...);
$parser->setOptional(...);
$parser->setAllowedValues(...)
$parser->parse($userOptions);
```

The only of the above examples that makes sense to me here is OptionsResolver -> resolve($userOptions).

Ideas?

---------------------------------------------------------------------------

by stof at 2012-05-10T09:56:54Z

OptionsResolver seems a better name than OptionsParser

---------------------------------------------------------------------------

by luxifer at 2012-05-10T09:59:45Z

Agree with @stof

---------------------------------------------------------------------------

by r1pp3rj4ck at 2012-05-10T10:03:53Z

I don't really like the plural in the name, but OptionsResolver seems better than OptionsParser. OptionResolver maybe?

---------------------------------------------------------------------------

by sstok at 2012-05-10T10:10:14Z

@r1pp3rj4ck Options makes more sense as they can be nested/deeper, and thus are multiple.

Agree with @stof also.

---------------------------------------------------------------------------

by r1pp3rj4ck at 2012-05-10T10:13:01Z

@sstok well, we have multiple events too and the name is EventDispatcher, not EventsDispatcher. Actually none of the component names are plural.

---------------------------------------------------------------------------

by newicz at 2012-05-10T10:33:50Z

OptionsResolver - I find it suggesting that there is some kind of problem to be resolved and there's not,
maybe OptionsDefiner but it isn't good aswell this is a tough one
2012-05-15 10:14:33 +02:00
jaugustin
9215c4478f [Form] fix failing tests for remove call on an objectCollection 2012-05-14 20:50:10 +02:00
Bernhard Schussek
076a104e86 [Form] Created failing test for PropertyPath modifying collections while iterating them 2012-05-14 20:50:04 +02:00
Bernhard Schussek
256b7081a4 [OptionsParser] Renamed OptionsParser to OptionsResolver 2012-05-14 19:35:07 +02:00
Bernhard Schussek
b9d053edb2 [Form] Moved Options classes to new OptionsParser component 2012-05-14 19:35:07 +02:00
Romain Geissler
47605f63e3 [Form][DataMapper] Do not update form to data when form is read only 2012-05-14 17:35:21 +02:00
William DURAND
ceb5ce6e5e [Form] fixed tests 2012-05-12 19:09:49 +02:00
William DURAND
df36afb123 [Form] Added tests 2012-05-12 18:44:54 +02:00
William DURAND
6d5ad3b289 [Form] Added right HTML types to Datetime/Date/Time types if single_text is true 2012-05-12 18:44:53 +02:00
Fabien Potencier
62594291e4 [Form] fixed wrong class path (closes #4239) 2012-05-10 12:15:10 +02:00
Fabien Potencier
3719c70870 updated minimum PHP version to 5.3.3
5.3.3 has some interesting fixes and this is the version used by
Redhat 6 and Debian 6
2012-05-07 10:29:11 +02:00
Fabien Potencier
5bed5f3c2c merged branch willdurand/fix-components (PR #4155)
Commits
-------

c195957 [Components] Tests/Autoloading fixes

Discussion
----------

Fix components

See #4141

----
This PR:

* configures each component to use composer to manage "dev" dependencies instead of env variables;
* adds phpunit configuration file on Filesystem component;
* fixes READMEs.

It's mergeable without any problems, but I would recommend to wait a fix in Composer in order to use `self.version` in `require`/`require-dev` sections.

Note: I kept `suggest` sections because it makes sense but this PR doesn't aim to provide useful explanations for each entry. It could be another PR, not that one.

---------------------------------------------------------------------------

by willdurand at 2012-04-30T20:43:13Z

@fabpot I reviewed each component, one by one. Now `phpunit` always works, even if tests are skipped. A simple `composer install --dev` allows to run the complete test suite. Each commit is well separated from the others. I guess, everything is ok now.

---------------------------------------------------------------------------

by Tobion at 2012-04-30T20:47:00Z

Please squash, as it makes no sense to have the same commit for each component.

---------------------------------------------------------------------------

by fabpot at 2012-05-01T14:26:11Z

Can you squash your commits before I merge? Thanks.

---------------------------------------------------------------------------

by willdurand at 2012-05-01T14:29:38Z

done

---------------------------------------------------------------------------

by fabpot at 2012-05-01T15:48:25Z

It does not seem that the commits are squashed.

---------------------------------------------------------------------------

by willdurand at 2012-05-01T15:54:08Z

done
2012-05-01 17:59:34 +02:00
William DURAND
c1959571ac [Components] Tests/Autoloading fixes
* Switched to Composer to manage "dev" dependencies
* Fixed READMEs
* Excluded vendor in phpunit.xml.dist files
* Fixed message in bootstrap.php files
* Added autoloader for the component itself
2012-05-01 17:51:41 +02:00
Fabien Potencier
26f933e7bd fixed CS 2012-05-01 15:23:48 +02:00
Fabien Potencier
9fbf8555f0 Revert "merged branch Seldaek/master (PR #4133)"
This reverts commit 00e7a94a8c, reversing
changes made to a01dec00f4.
2012-04-27 19:55:40 +02:00
Fabien Potencier
091ede2dd1 merged branch bschussek/issue3994 (PR #4046)
Commits
-------

246c885 [Form] Fixed: Default value of 'error_bubbling' is now determined by the 'single_control' option
d3bb4d0 [Form] Renamed option 'primitive' to 'single_control'
167e64f [Form] Fixed: Field attributes are not rendered in the label anymore. Label attributes are now passed in "label_attr"
68018a1 [Form] Dropped useless test that is guaranteed by OptionsParser tests and that needs to be adapted very often
649752c [Form] Fixed: CSRF token was not displayed on empty complex forms
c623fcf [Form] Fixed: CSRF protection did not run if token was missing
eb75ab1 [Form] Fixed results of the FieldType+FormType merge.

Discussion
----------

[Form] Fixed errors introduced in the FieldType+FormType merge

Bug fix: yes
Feature addition: no
Backwards compatibility break: yes
Symfony2 tests pass: yes
Fixes the following tickets: #3994, #4000, #2294, #4118
Todo: -

![Travis Build Status](https://secure.travis-ci.org/bschussek/symfony.png?branch=issue3994)

---------------------------------------------------------------------------

by Tobion at 2012-04-22T15:39:20Z

`primitive` is a pretty abstract option name. It depends on the person what he considers primitive. Maybe more explicit naming or better documentation what it means.

---------------------------------------------------------------------------

by bschussek at 2012-04-22T15:47:29Z

Better suggestions?

The distinction here is between primitive and complex forms, where primitive forms are such forms that can be represented by a single HTML tag. This obviously needs to be documented.

---------------------------------------------------------------------------

by Tobion at 2012-04-22T15:49:45Z

Maybe `single_widget` or something like that.

---------------------------------------------------------------------------

by vicb at 2012-04-23T13:09:43Z

@Tobion @bschussek would `elementary` be better than `primitive` ?

---------------------------------------------------------------------------

by vicb at 2012-04-23T13:17:04Z

and `compound \ composite` better than `complex` ?

---------------------------------------------------------------------------

by bschussek at 2012-04-23T14:08:33Z

@vicb I fail to see how elementary/compound is easier to understand than primitive/complex. Maybe single_widget, but what's the opposite of this case? multi_widget?

---------------------------------------------------------------------------

by vicb at 2012-04-23T14:15:09Z

Actually I am fine with anything... as long as it is documented.

---------------------------------------------------------------------------

by bschussek at 2012-04-23T14:22:31Z

Still I think that this unveals a more profound naming problem. How do we (also in the documentation) name forms with children (formerly "forms") and forms without children (formerly "fields")?

Should we refer to them as

* forms and fields?
* complex and primitive forms?
* ...

We must first answer this question before we can find an intuitive option name. If the documentation always switches between different terminologies, neither will it be understandable nor will this option be easy to remember.

---------------------------------------------------------------------------

by vicb at 2012-04-23T15:10:32Z

> Still I think that this unveals a more profound naming problem. How do we (also in the documentation) name forms with children (formerly "forms") and forms without children (formerly "fields")?

To make it clear, I would rather say forms that **can have** children and forms that **can not have** children (i.e. Empty collections have no children but they can have and this is reason why you have to introduce those options, right ? - that could be a good example for the doc).

It will probably be better to refer to "complex" / "primitive" forms in the doc (and use the "form" / "field" terms to explain them).

Note: I think @Tobion concern is that "primitive" / "complex" could be pejorative terms (this is why I have proposed "elementary" / "compound").

---------------------------------------------------------------------------

by Tobion at 2012-04-23T16:00:54Z

1. primitive/complex is subjective (and could be pejorative too)
2. elementary/compound is more explicit so probably better than primitive/complex
3. I dislike this option in general. Does it make sense to change this option from a user perspective? I guess it's always the same as long as the widget structure stays the same. So it should be resolved at a higher level dynamically from the widget structure and not exposed to any configuration.
4. In documentation I would use the terms forms and fields. Because all people with HTML knowledge will understand that fields cannot have sub-fields whereas forms can. But since this distinction is not findable in code, it should be mentioned that all these are implemented as a form hierarchy.

---------------------------------------------------------------------------

by mvrhov at 2012-04-23T16:02:00Z

how about simple and complex?

---------------------------------------------------------------------------

by bschussek at 2012-04-23T16:06:33Z

@Tobion It does not make sense to change this option from the user perspective, still the overloading type has to propagate to FormType whether it is a form or a field, so that the default behaviour is correct.

A second option how to implement this is to add a method `isField` to FormTypeInterface that can be overloaded and receives the options. I don't really like to introduce new methods here unless absolutely required.

What about renaming the option "primitive" to "is_field"? The blocks in the template would then be named "form_widget_field" and "form_widget_form".

---------------------------------------------------------------------------

by tristanbes at 2012-04-25T14:01:06Z

Oh, I should've seen this before, i thought I was doing something wrong. (empty collections gets an input field bug)

Please big :UP: on this. When will it be merged ? @bschussek

---------------------------------------------------------------------------

by Tobion at 2012-04-25T15:30:28Z

+1 for "is_field" and "form_widget_field" but I would rather use "form_widget_compound" instead of "form_widget_form" which is quite strange.

---------------------------------------------------------------------------

by bschussek at 2012-04-26T16:34:04Z

@Tobion "simple" and "compound" then?

---------------------------------------------------------------------------

by Tobion at 2012-04-26T16:49:58Z

no "field" and "compound"

---------------------------------------------------------------------------

by bschussek at 2012-04-26T17:17:02Z

I don't like "field" for a simple reason: Consider the "date" type. We are typically speaking of the "date" field there. But technically, the "date" field is a compound field. So?

---------------------------------------------------------------------------

by Tobion at 2012-04-26T21:17:37Z

I don't understand the open question. You proposed "is_field" and "form_widget_field" yourself. So calling the template block "form_widget_field" is a comprehensible consequence of "is_field". I wouldn't call the date type with multiple inputs a field.

---------------------------------------------------------------------------

by tristanbes at 2012-04-26T21:52:39Z

We should take a decision cause right here i got all my forms that are broken because of the empty collection rendering as input field :-).

I guess we are many in that situation.

---------------------------------------------------------------------------

by bschussek at 2012-04-27T08:28:16Z

I renamed "primitive" to "single_control" now to match with the HTML specification which names all input elements (input, select etc.) "controls". The opposite is now "compound".

Meanwhile, I added a fix for #4118.

@fabpot This is ready for merge now.

---------------------------------------------------------------------------

by Tobion at 2012-04-27T10:22:49Z

Hm, I know naming things is hard and sometimes not really important. But since users need to know which block to override, it is essential to make it clear. I think there is still one issue.
The block is named `form_widget_single_control` in order, as you said, to abstract away if it's an input, select etc. But in fact it can only render `input` and nothing else. So this is misleading.
So you could also simply name it `form_widget_input`.
Apart from that I agree with everything.
2012-04-27 19:13:34 +02:00
Jordi Boggiano
00c4267726 Update branch aliases 2012-04-27 12:47:50 +02:00
Bernhard Schussek
246c8852c8 [Form] Fixed: Default value of 'error_bubbling' is now determined by the 'single_control' option 2012-04-27 10:24:06 +02:00
Bernhard Schussek
d3bb4d085c [Form] Renamed option 'primitive' to 'single_control' 2012-04-27 10:18:25 +02:00
Bernhard Schussek
167e64f799 [Form] Fixed: Field attributes are not rendered in the label anymore. Label attributes are now passed in "label_attr" 2012-04-27 09:48:34 +02:00
Bernhard Schussek
68018a10da [Form] Dropped useless test that is guaranteed by OptionsParser tests and that needs to be adapted very often 2012-04-27 09:47:17 +02:00
Bernhard Schussek
649752c947 [Form] Fixed: CSRF token was not displayed on empty complex forms 2012-04-27 09:47:16 +02:00
Bernhard Schussek
c623fcf4d4 [Form] Fixed: CSRF protection did not run if token was missing 2012-04-27 09:47:16 +02:00
Bernhard Schussek
eb75ab1b74 [Form] Fixed results of the FieldType+FormType merge. 2012-04-27 09:47:16 +02:00
Fabien Potencier
7048172e3f [Form] added CHANGELOG 2012-04-26 22:38:50 +02:00
Christian Raue
f287f0804d removed superfluous public modifier from interface methods 2012-04-24 19:15:04 +02:00
Christian Raue
ee57c04b24 added missing dot in FormType as follow-up to #3922 2012-04-24 01:06:23 +02:00