Commit Graph

1183 Commits

Author SHA1 Message Date
Jules Pietri
03a7705932 [WIP] [3.0] [Form] fix tests added by #17760 by removing 2016-02-26 06:58:36 +01:00
Fabien Potencier
5554c76473 Merge branch '2.8' into 3.0
* 2.8:
  [Form] refactor `RadioListMapper::mapDataToForm()`
  [Form] fix choice value "false" in ChoiceType
2016-02-26 06:10:13 +01:00
Fabien Potencier
42467b31d7 Merge branch '2.7' into 2.8
* 2.7:
  [Form] refactor `RadioListMapper::mapDataToForm()`
  [Form] fix choice value "false" in ChoiceType
2016-02-26 06:06:51 +01:00
Fabien Potencier
a7f98315f3 bug #17760 [2.7] [Form] fix choice value "false" in ChoiceType (HeahDude)
This PR was merged into the 2.7 branch.

Discussion
----------

[2.7] [Form] fix choice value "false" in ChoiceType

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #17292, #14712, #17789
| License       | MIT
| Doc PR        | -

- [x] Add tests for choices with `boolean` and `null` values, and with a placeholder
- [x] Fix FQCN in 2.8 tests, see #17759
- [x] Remove `choices_as_values` in 3.0 tests, see #17886

Commits
-------

8f918e5 [Form] refactor `RadioListMapper::mapDataToForm()`
3eac469 [Form] fix choice value "false" in ChoiceType
2016-02-26 06:04:56 +01:00
Fabien Potencier
6782cfa011 Merge branch '2.8' into 3.0
* 2.8:
  fixed typo
  fixed typo
  Fixed a minor XML issue in a translation file
  Fix merge
  Fix merge
  Fix merge
  Fix merge
  Update twig.html.twig
  PhpUnitNoDedicateAssertFixer results
  Improve Norwegian translations
  [2.7] [FrameworkBundle] minor fix tests added by #17569
  Fixed the antialiasing of the toolbar text
  Simplify markdown for PR template
  fixed CS
  fixed CS
  documented the $url parameter better
  [Form] add test for ArrayChoiceList handling null
  [Form] fix edge cases with choice placeholder
  register commands from kernel when accessing list
  Update FileSystem
2016-02-23 16:16:06 +01:00
Jules Pietri
8f918e5f84 [Form] refactor RadioListMapper::mapDataToForm()
This fixes "false" choice pre selection when `ChoiceType`
is `expanded` and not `multiple`
2016-02-22 16:33:26 +01:00
Jules Pietri
3eac4693ad [Form] fix choice value "false" in ChoiceType 2016-02-22 16:33:26 +01:00
Fabien Potencier
5324e5b315 Merge branch '2.7' into 2.8
* 2.7:
  Update twig.html.twig
  [2.7] [FrameworkBundle] minor fix tests added by #17569
  fixed CS
  fixed CS
  documented the $url parameter better
  [Form] add test for ArrayChoiceList handling null
  [Form] fix edge cases with choice placeholder
  register commands from kernel when accessing list
  Update FileSystem
2016-02-22 16:02:30 +01:00
Fabien Potencier
d3c55cb3f1 bug #17787 [Form] Fix choice placeholder edge cases (Tobion)
This PR was merged into the 2.7 branch.

Discussion
----------

[Form] Fix choice placeholder edge cases

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Fixing several problems with choice placeholder that enhances #9030 for more edge cases:

- A choice with an empty value manually added in the choices array should only be considered a placeholder when it is the first element in the final choice select.
This is part of the HTML spec and how browsers also behave. If you select a choice with an empty value that is not the first option, it will still pass the "required" check
and thus submit the empty value. So it's not a placeholder.
If in the example below you move the empty option to the first place, the browsers will error on submit that you
must select a value. So only then it is a placeholder to show as initial value.

```html
<select id="form_timezone" name="form[timezone]" required="required">
    <option value="Africa/Abidjan">Abidjan</option>
    <option value="">Empty</option>
</select>
```

Also the validator https://validator.w3.org/nu/ will mark the above code as error:
> The first child option element of a select element with a required attribute, and without a multiple attribute, and without a size attribute whose value is greater than 1, must have either an empty value attribute, or must have no text content. Consider either adding a placeholder option label, or adding a size attribute with a value equal to the number of option elements.

This is fixed by replacing`0 !== count($choiceList->getChoicesForValues(array('')))` with `$view->vars['placeholder_in_choices'] = $choiceListView->hasPlaceholder()`.
Which means, the required attribute is removed automatically because the select form element is required implicitly anyway due to the nature of the choice UI.

- As the above quote mentions, the `size` attribute also has impact. Namely for a select with size > 1 it can be possible to have a required attribute even without placeholder.
This is because when the size > 1, there is no default choice selected (similar to select with "multiple").

- A placeholder for required radio buttons or a select with size > 1 does not make sense as it would just be fake data that can be submitted (similar to the ignored placeholder for multi-select and checkboxes).

Commits
-------

0efbc30 [Form] fix edge cases with choice placeholder
2016-02-18 13:07:46 +01:00
Fabien Potencier
2128d52cb8 Merge branch '2.8' into 3.0
* 2.8:
  [DependencyInjection] fix dumped YAML snytax
  Remove InputOption::VALUE_REQUIRED mode from $default parameter description as InputOption::setDefault() throws an exception only when called in InputOption::VALUE_NONE mode. In practice the $default value could still be accessed in InputOption::VALUE_REQUIRED mode in case InputOption was never set but accessed from InputDefinition::getOption() method
  [Form] Fixed violation mapping if multiple forms are using the same (or part of the same) property path
  fix FQCN in tests added by #17694
  Fix locale and written standard inconsistencies for Norwegian translations
  [Form] [Validator] Fix locale inconsistencies in Norwegian translations
  [TwigBridge] Symfony 3.1 forward compatibility
  fixed CS
  [DependencyInjection] fixed exceptions thrown by get method of ContainerBuilder
  [Yaml] properly parse lists in object maps
  [FrameworkBundle] Remove unused private method.
  [Form] remove useless code in ResizeFormListener
  [Config] Fix EnumNodeDefinition to allow building enum nodes with one element
  fix choice_value option in EntityType and add some tests
2016-02-16 07:11:42 +01:00
Fabien Potencier
fc2fa79bb5 Merge branch '2.7' into 2.8
* 2.7:
  [DependencyInjection] fix dumped YAML snytax
  Remove InputOption::VALUE_REQUIRED mode from $default parameter description as InputOption::setDefault() throws an exception only when called in InputOption::VALUE_NONE mode. In practice the $default value could still be accessed in InputOption::VALUE_REQUIRED mode in case InputOption was never set but accessed from InputDefinition::getOption() method
  [Form] Fixed violation mapping if multiple forms are using the same (or part of the same) property path
  [TwigBridge] Symfony 3.1 forward compatibility
2016-02-16 07:09:38 +01:00
Fabien Potencier
457967c6c7 Merge branch '2.3' into 2.7
* 2.3:
  [DependencyInjection] fix dumped YAML snytax
  Remove InputOption::VALUE_REQUIRED mode from $default parameter description as InputOption::setDefault() throws an exception only when called in InputOption::VALUE_NONE mode. In practice the $default value could still be accessed in InputOption::VALUE_REQUIRED mode in case InputOption was never set but accessed from InputDefinition::getOption() method
  [Form] Fixed violation mapping if multiple forms are using the same (or part of the same) property path
  [TwigBridge] Symfony 3.1 forward compatibility
2016-02-16 07:07:10 +01:00
Fabien Potencier
d4ac467462 bug #17099 [Form] Fixed violation mapping if multiple forms are using the same (or part of the same) property path (alekitto)
This PR was squashed before being merged into the 2.3 branch (closes #17099).

Discussion
----------

[Form] Fixed violation mapping if multiple forms are using the same (or part of the same) property path

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #5656
| License       | MIT
| Doc PR        |

Commits
-------

f005c80 [Form] Fixed violation mapping if multiple forms are using the same (or part of the same) property path
2016-02-15 10:19:57 +01:00
Alessandro Chitolina
f005c80bc5 [Form] Fixed violation mapping if multiple forms are using the same (or part of the same) property path 2016-02-15 10:19:56 +01:00
Fabien Potencier
5cf36ad563 Merge branch '2.7' into 2.8
* 2.7:
  Fix locale and written standard inconsistencies for Norwegian translations
  [Form] [Validator] Fix locale inconsistencies in Norwegian translations
  fixed CS
  [DependencyInjection] fixed exceptions thrown by get method of ContainerBuilder
  [Form] remove useless code in ResizeFormListener
2016-02-14 14:08:45 +01:00
Fabien Potencier
dc59e42257 Merge branch '2.3' into 2.7
* 2.3:
  [Form] [Validator] Fix locale inconsistencies in Norwegian translations
  fixed CS
  [DependencyInjection] fixed exceptions thrown by get method of ContainerBuilder
  [Form] remove useless code in ResizeFormListener
2016-02-14 14:08:36 +01:00
Fabien Potencier
c80c8b71ce minor #17784 [Form] remove deprecated empty_value_in_choices (Tobion)
This PR was merged into the 3.0 branch.

Discussion
----------

[Form] remove deprecated empty_value_in_choices

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | tiny
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

This has been deprecated since 2.6 in #12003. One part has already been removed  (`empty_value`) but this part has been forgotten.

Commits
-------

735f92e [Form] remove deprecated empty_value_in_choices
2016-02-14 10:59:52 +01:00
Tobias Schultze
088c20c9b3 [Form] remove useless code in ResizeFormListener 2016-02-13 18:06:22 +01:00
Tobias Schultze
0efbc30304 [Form] fix edge cases with choice placeholder 2016-02-13 13:18:37 +01:00
Nicolas Grekas
74c4974998 Merge branch '2.8' into 3.0
* 2.8:
  [VarDumper] Fix tests on PHP 7
  [DomCrawler] Clarify the value returned by getPhpFiles()
  [DependencyInjection] Fix #16461 Let Container::set() replace existing aliases
  avoid (string) catchable fatal error for instances of __PHP_Incomplete_Class
  remove unnecessary retrieval and setting of data
  Update validators.fr.xlf
  avoid (string) catchable fatal error for __PHP_Incomplete_Class instances
  sendContent return as parent.
  [DomCrawler] Remove the overridden getHash() method to prevent problems when cloning the crawler
  [FrameworkBundle] Fix a typo
  Added more exceptions to singularify method
  Add width attribute on SVG
  [FrameworkBundle] Support autowiring for TranslationInterface
  [WebProfiler] Fixed styles for search block and menu profiler for IE Edge

Conflicts:
	src/Symfony/Component/DependencyInjection/Tests/ContainerTest.php
	src/Symfony/Component/DomCrawler/Crawler.php
2016-02-13 10:23:44 +01:00
Nicolas Grekas
1d8d43b4e7 Merge branch '2.7' into 2.8
* 2.7:
  [VarDumper] Fix tests on PHP 7
  [DomCrawler] Clarify the value returned by getPhpFiles()
  [DependencyInjection] Fix #16461 Let Container::set() replace existing aliases
  avoid (string) catchable fatal error for instances of __PHP_Incomplete_Class
  remove unnecessary retrieval and setting of data
  avoid (string) catchable fatal error for __PHP_Incomplete_Class instances
  sendContent return as parent.
  [FrameworkBundle] Fix a typo
  Added more exceptions to singularify method
2016-02-13 10:21:29 +01:00
Tobias Schultze
735f92e84e [Form] remove deprecated empty_value_in_choices 2016-02-12 22:47:32 +01:00
Fabien Potencier
4598b74906 Merge branch '2.3' into 2.7
* 2.3:
  remove unnecessary retrieval and setting of data
  avoid (string) catchable fatal error for __PHP_Incomplete_Class instances
  sendContent return as parent.
  [FrameworkBundle] Fix a typo
2016-02-12 07:23:50 +01:00
Trent Steel
ea52400097 remove unnecessary retrieval and setting of data 2016-02-12 00:13:18 +01:00
Fabien Potencier
45031ff31d minor #17398 [Validator] remove obsolete context and PropertyAccess code (Tobion)
This PR was squashed before being merged into the 3.0 branch (closes #17398).

Discussion
----------

[Validator] remove obsolete context and PropertyAccess code

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Commits
-------

a9d9d62 [Validator] remove obsolete context and PropertyAccess code
2016-02-06 08:05:32 +01:00
Tobias Schultze
a9d9d62e9b [Validator] remove obsolete context and PropertyAccess code 2016-02-06 08:05:29 +01:00
Fabien Potencier
b6767c23dd Merge branch '2.8' into 3.0
* 2.8:
  [2.7] Fix tests
  pass triggerDeprecationError arg to parent class
  remove default null value for asset version
  remove duplicated value
  [Ldap] Remove unused private property
  Update UPGRADE-3.0 with correct Voter details
  Change few occurences of a public setUp() method to protected
  [DependencyInjection] simplify the BC layer
  Change couple of occurences of a public setUp() method to protected
2016-01-30 17:03:33 +01:00
Fabien Potencier
8a95ec5303 Merge branch '2.7' into 2.8
* 2.7:
  [2.7] Fix tests
  pass triggerDeprecationError arg to parent class
  remove default null value for asset version
  remove duplicated value
  [DependencyInjection] simplify the BC layer
  Change couple of occurences of a public setUp() method to protected
2016-01-30 16:58:35 +01:00
Jules Pietri
d15c34a51f remove duplicated value 2016-01-29 17:58:49 +01:00
Fabien Potencier
89e86197c1 minor #17480 Static code analysis (Koc)
This PR was merged into the 2.3 branch.

Discussion
----------

Static code analysis

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Things that done:
* fix case in method calls
* removed unused imports
* use shorter concat where it possible
* optimize some css
* removed duplicated array keys
* removed redurant return statements
* removed one-time variables
* do not pass arguments that not used in functions

Commits
-------

8db691a Static code analysis
2016-01-27 05:57:57 +01:00
Konstantin.Myakshin
8db691ab94 Static code analysis 2016-01-25 19:00:36 +02:00
Fabien Potencier
107765142e Merge branch '2.8' into 3.0
* 2.8:
  fixed test
  [Request] Ignore invalid IP addresses sent by proxies
  [EventDispatcher] TraceableEventDispatcher resets listener priorities
  Throw for missing container extensions
  [TwigBridge] add missing unit tests (AppVariable)
  Able to load big xml files with DomCrawler
  fixed typo
  [Form] Fix constraints could be null if not set
  [Finder] Check PHP version before applying a workaround for a PHP bug
  fixed CS
  add defaultNull to version
  sort bundles in config:dump-reference command
  Fixer findings.
  Profiler CSS position conflicts with JS detection
  [Translation][Writer] avoid calling setBackup if the dumper is not an instance of FileDumper.
  [FrameworkBundle] Compute the kernel root hash only one time
2016-01-25 10:56:57 +01:00
Fabien Potencier
04ca6a2771 Merge branch '2.7' into 2.8
* 2.7:
  fixed test
  [Request] Ignore invalid IP addresses sent by proxies
  Throw for missing container extensions
  [TwigBridge] add missing unit tests (AppVariable)
  Able to load big xml files with DomCrawler
  fixed typo
  [Form] Fix constraints could be null if not set
  [Finder] Check PHP version before applying a workaround for a PHP bug
  fixed CS
  add defaultNull to version
  sort bundles in config:dump-reference command
  Fixer findings.
  [Translation][Writer] avoid calling setBackup if the dumper is not an instance of FileDumper.
  [FrameworkBundle] Compute the kernel root hash only one time
2016-01-25 10:56:46 +01:00
Fabien Potencier
2173c78da2 Merge branch '2.3' into 2.7
* 2.3:
  [Request] Ignore invalid IP addresses sent by proxies
  Able to load big xml files with DomCrawler
  fixed typo
  [Form] Fix constraints could be null if not set
  [Finder] Check PHP version before applying a workaround for a PHP bug
  fixed CS
  sort bundles in config:dump-reference command
  Fixer findings.
2016-01-25 10:55:53 +01:00
Fabien Potencier
07d99c2b6f bug #16897 [Form] Fix constraints could be null if not set (DZunke)
This PR was squashed before being merged into the 2.3 branch (closes #16897).

Discussion
----------

[Form] Fix constraints could be null if not set

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

If the form options has no key for constraints the default should be an empty array to be ignored by the loop in the FormValidator. The default without this fix is ```null``` and foreach will throw an error.

The "Bug" also still exists in master-Branch.

Commits
-------

f80e0eb [Form] Fix constraints could be null if not set
2016-01-25 09:19:47 +01:00
DZunke
f80e0eb143 [Form] Fix constraints could be null if not set 2016-01-25 09:19:45 +01:00
Konstantin.Myakshin
b8028f6053 Remove unused imports 2016-01-21 00:01:55 +02:00
Fabien Potencier
fd50be95d9 Merge branch '2.7' into 2.8
* 2.7: (28 commits)
  [Process] Use stream based storage to avoid memory issues
  Fix upgrade guides concerning erroneous removal of assets helper
  [Process] Remove a misleading comment
  Fix markdown typo
  ChooseBaseUrl should return an index
  [Form] ChoiceType: Fix a notice when 'choices' normalizer is replaced
  Improve the phpdoc of SplFileInfo methods
  [Process] Use stream based storage to avoid memory issues
  [FrameworkBundle] Don't log twice with the error handler
  Remove useless is_object condition
  [Process] Fix typo, no arguments needed anymore
  [Serializer] Introduce constants for context keys
  Fixed the documentation of VoterInterface::supportsAttribute
  Fixed Bootstrap form theme form "reset" buttons
  Remove useless duplicated tests
  [FrameworkBundle] Optimize framework extension tests
  synchronize 2.7 and 3.0 upgrade files
  fix merge 2.3 into 2.7 for SecureRandom dependency
  Use is_subclass_of instead of reflection
  Use is_subclass_of instead of Reflection when possible
  ...
2016-01-20 13:09:07 +01:00
Paráda József
be056fd0bf [Form] ChoiceType: Fix a notice when 'choices' normalizer is replaced 2016-01-19 13:18:13 +01:00
Paráda József
d7e3254438 [3.0] Remove calls to not-existent method 2016-01-16 01:08:58 +01:00
Nicolas Grekas
78a08f3a68 Merge branch '2.8' into 3.0
* 2.8:
  Fix merge
  [Process] Fix running tests on HHVM>=3.8
  [Form] Improved performance of ChoiceType and its subtypes
  Removed an object as route generator argument

Conflicts:
	src/Symfony/Bridge/Doctrine/Tests/Form/Type/EntityTypeTest.php
	src/Symfony/Bundle/FrameworkBundle/Resources/config/form.xml
2015-12-30 19:45:14 +01:00
Nicolas Grekas
d38278fd12 Merge branch '2.7' into 2.8
* 2.7:
  [Process] Fix running tests on HHVM>=3.8
  [Form] Improved performance of ChoiceType and its subtypes
2015-12-30 19:23:12 +01:00
Tobias Schultze
140ed985be feature #16747 [Form] Improved performance of ChoiceType and its subtypes (webmozart)
This PR was merged into the 2.7 branch.

Discussion
----------

[Form] Improved performance of ChoiceType and its subtypes

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

I found out today that, although CachingFactoryDecorator is part of Symfony 2.7, it is not configured to be used in the DI configuration. This simple in-memory cache improved the page load by 50% for one considerably large form with many (~600) choice/entity fields that I was working on today.

Also, caching of query builders with parameters was broken, since the parameters are represented by objects. PHP's object hashes were used to calculate the cache keys, hence the cache always missed. I converted parameters to arrays for calculating the cache keys to fix this problem.

Commits
-------

a0ef101 [Form] Improved performance of ChoiceType and its subtypes
2015-12-30 16:04:43 +01:00
Nicolas Grekas
52c4304084 Merge branch '2.8' into 3.0
* 2.8:
  [Form] fix Catchable Fatal Error if choices is not an array
  [Process] Fix a transient test
  [Process] Fix potential race condition leading to transient tests
  [DoctrineBridge] [PropertyInfo] Catch Doctrine\ORM\Mapping\MappingException
  [Routing] removed unused variable in PhpMatcherDumperTest class.
  [travis] use github token to fetch deps from ZIP files
  [DependencyInjection] fixes typo in triggered deprecation notice.
  [Form] improve deprecation messages for the "empty_value" and "choice_list" options in the ChoiceType class.
  [Form] Fixed regression on Collection type
  add missing symfony/polyfill-php55 dependency

Conflicts:
	src/Symfony/Component/DependencyInjection/SimpleXMLElement.php
	src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php
	src/Symfony/Component/Form/Tests/Extension/Core/Type/ChoiceTypeTest.php
	src/Symfony/Component/Form/Tests/Extension/Core/Type/CollectionTypeTest.php
	src/Symfony/Component/HttpFoundation/composer.json
2015-12-30 11:41:35 +01:00
Nicolas Grekas
7fc30463e2 Merge branch '2.7' into 2.8
* 2.7:
  [Form] fix Catchable Fatal Error if choices is not an array
  [Process] Fix a transient test
  [Process] Fix potential race condition leading to transient tests
  [Routing] removed unused variable in PhpMatcherDumperTest class.
  [travis] use github token to fetch deps from ZIP files
  [DependencyInjection] fixes typo in triggered deprecation notice.
  [Form] improve deprecation messages for the "empty_value" and "choice_list" options in the ChoiceType class.

Conflicts:
	src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php
2015-12-30 11:33:57 +01:00
Bernhard Schussek
a0ef1018d6 [Form] Improved performance of ChoiceType and its subtypes 2015-12-30 11:11:52 +01:00
Nicolas Grekas
b78eab561e bug #17163 [Form] fix Catchable Fatal Error if choices is not an array (Gladhon, nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[Form] fix Catchable Fatal Error if choices is not an array

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        |

Since 2.7.8 I got a BC-Break Error

Catchable Fatal Error: Argument 1 passed to Symfony\Component\Form\Extension\Core\Type\ChoiceType::normalizeLegacyChoices() must be of the type array, null given

normalizeLegacyChoices work only with array, so if choices not an array, just don't try to normlize.

Commits
-------

f3c2a9b [Form] fix Catchable Fatal Error if choices is not an array
2015-12-30 10:03:39 +01:00
Gladhon
f3c2a9beda [Form] fix Catchable Fatal Error if choices is not an array 2015-12-30 10:03:36 +01:00
Hugo Hamon
787853673b [Form] improve deprecation messages for the "empty_value" and "choice_list" options in the ChoiceType class. 2015-12-29 10:59:52 +01:00
Martin Hasoň
bd686cd1ee [Form] Fixed regression on Collection type 2015-12-29 10:02:59 +01:00