Commit Graph

62 Commits

Author SHA1 Message Date
Fabien Potencier
33a001e460 switched array() to [] 2019-01-16 10:39:14 +01:00
Valentin
b8f6390ef9 Fixed groupBy argument value in DefaultChoiceListFactoryTest 2019-01-04 02:14:05 +03:00
Valentin
9007911a85 Do not ignore the choice groups for caching 2018-12-27 02:35:06 +03:00
Nicolas Grekas
f5939a8336 Merge branch '2.8' into 3.4
* 2.8:
  Fix Clidumper tests
  Enable the fixer enforcing fully-qualified calls for compiler-optimized functions
  Apply fixers
  Disable the native_constant_invocation fixer until it can be scoped
  Update the list of excluded files for the CS fixer
2018-07-26 10:45:46 +02:00
Christophe Coevoet
04654cfeb3 Enable the fixer enforcing fully-qualified calls for compiler-optimized functions 2018-07-24 12:05:38 +02:00
Peter Rehm
c2e80e3b8b Updated PHPUnit namespaces 2017-02-20 14:34:33 +01:00
Nicolas Grekas
66cad2e4c5 Merge branch '2.8' into 3.2
* 2.8:
  Update to PHPUnit namespaces
  Minor typo fix messsagesData -> messagesData
  remove translation data collector when not usable
2017-02-18 18:28:00 +01:00
Nicolas Grekas
33bae93a44 Merge branch '2.7' into 2.8
* 2.7:
  Update to PHPUnit namespaces
  remove translation data collector when not usable
2017-02-18 18:06:33 +01:00
Peter Rehm
ddd2dff9b2 Update to PHPUnit namespaces 2017-02-18 08:02:39 -08:00
Fabien Potencier
3f96468942 Merge branch '3.1' into 3.2
* 3.1:
  fixed obsolete getMock() usage
  fixed obsolete getMock() usage
  fixed obsolete getMock() usage
  [WebProfilerBundle] Display multiple HTTP headers in WDT
  do not remove the Twig ExceptionController service
  removed obsolete condition
  do not try to register incomplete definitions
2016-12-19 17:07:36 +01:00
Fabien Potencier
a3058245db fixed obsolete getMock() usage 2016-12-19 17:00:11 +01:00
Fabien Potencier
7ae26ed5f1 Merge branch '2.8' into 3.1
* 2.8:
  fixed obsolete getMock() usage
  fixed obsolete getMock() usage
  [WebProfilerBundle] Display multiple HTTP headers in WDT
  do not remove the Twig ExceptionController service
  removed obsolete condition
  do not try to register incomplete definitions
2016-12-19 16:53:49 +01:00
Fabien Potencier
84e75a78b3 Merge branch '2.7' into 2.8
* 2.7:
  fixed obsolete getMock() usage
  [WebProfilerBundle] Display multiple HTTP headers in WDT
2016-12-19 16:38:44 +01:00
Fabien Potencier
71d059cad1 fixed obsolete getMock() usage 2016-12-19 16:22:46 +01:00
Fabien Potencier
832686b7a2 Merge branch '3.1'
* 3.1:
  fixed CS
  Properly format value in UniqueEntityValidator
  [Translation][fallback] add missing resources in parent catalogues.
  removed a deprecation notice
  [Form] Fix show float values as choices values in ChoiceType
  Remove double use Statement
  Improved the design of the metrics in the profiler
  [Yaml] set arguments depending on the PHP version
  [Console] Fix infinite loop on missing input
  [HttpFoundation][Session] memcached connection should not be closed
2016-11-06 08:24:48 -08:00
Fabien Potencier
0255cb143f Merge branch '2.8' into 3.1
* 2.8:
  [Translation][fallback] add missing resources in parent catalogues.
  removed a deprecation notice
  [Form] Fix show float values as choices values in ChoiceType
  Remove double use Statement
  Improved the design of the metrics in the profiler
  [Console] Fix infinite loop on missing input
  [HttpFoundation][Session] memcached connection should not be closed
2016-11-06 08:23:47 -08:00
Fabien Potencier
a66e9ff77e Merge branch '2.7' into 2.8
* 2.7:
  [Translation][fallback] add missing resources in parent catalogues.
  removed a deprecation notice
  [Form] Fix show float values as choices values in ChoiceType
  [HttpFoundation][Session] memcached connection should not be closed
2016-11-06 08:21:30 -08:00
Yonel Ceruto
35642288fa [Form] Fix show float values as choices values in ChoiceType 2016-11-05 14:02:34 -04:00
Fabien Potencier
a41f359e51 fixed CS 2016-06-21 08:43:40 +02:00
Fabien Potencier
0691506b1b Merge branch '3.1'
* 3.1:
  fixed CS
  fixed CS
  fixed CS
  fixed CS
  tweaked default CS fixer config
  [HttpKernel] Dont close the output stream in debug
  move HttpKernel component to require section
  Fixed oci and sqlsrv merge queries when emulation is disabled - fixes #17284
  [Session] fix PDO transaction aborted under PostgreSQL
  [Console] Use InputInterface inherited doc as possible
  Mention generating absolute urls in UPGRADE files and CHANGELOG
  parse embedded mappings only if value is a string
  add docblock type elements to support newly added IteratorAggregate::getIterator PhpStorm support
  FormBuilderInterface: fix getForm() return type.
  [YAML] Fixed parsing problem with nested DateTime lists
  Fixed typo in PHPDoc
2016-06-21 08:41:01 +02:00
Fabien Potencier
a39afd001f fixed CS 2016-06-21 08:06:14 +02:00
Jules Pietri
afd7bf8d56 [Form] added CallbackChoiceLoader 2016-06-13 12:02:06 +02:00
Fabien Potencier
ee679bf18e added a missing @group legacy 2016-04-28 12:18:51 +02:00
Fabien Potencier
5a64e5869e fixed typos 2016-04-28 12:17:48 +02:00
Fabien Potencier
0c5b83ab95 feature #18359 [Form] [DoctrineBridge] optimized LazyChoiceList and DoctrineChoiceLoader (HeahDude)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[Form] [DoctrineBridge] optimized LazyChoiceList and DoctrineChoiceLoader

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

Problem
======
Actually we got a circular dependency:

| Object | Return
|----------|-------------|
|`DefaultChoiceListFactory::createListFromLoader()` (decorated) | `LazyChoiceList` with loader and resolved `$value`
| `LazyChoiceList::get*` | `DoctrineChoiceLoader` with resolved `$value`
`DoctrineChoiceLoader::loadChoiceList()` | (decorated) `DefaultChoiceListFactory` with loaded choices and resolved `$value`
`DefaultChoiceListFactory::createListFromChoices()` | `ArrayChoiceList` with `resolved `$value`

With this refactoring, the `DoctrineChoiceLoader` is no longer dependant to the factory, the `ChoiceLoaderInterface::loadChoiceList()` must return a `ChoiceListInterface` but should not need a decorated factory while `$value` is already resolved. It should remain lazy IMHO.

Solution
======

| Object | Return |
|----------|-----------|
| `DefaultChoiceListFactory::createListFromLoader()` | `LazyChoiceList` with loader and resolved `$value`
| `LazyChoiceList::get*()` | `DoctrineChoiceLoader` with resolved `$value`
| `DoctrineChoiceLoader::loadChoiceList()` | `ArrayChoiceList` with resolved `$value`.

Since `choiceListFactory` is a private property, this change should be safe regarding BC.

To justify this change, I've made some blackfire profiling.
You can see my [branch of SE here](https://github.com/HeahDude/symfony-standard/tree/test/optimize-doctrine_choice_loader) and the [all in file test implementation](https://github.com/HeahDude/symfony-standard/blob/test/optimize-doctrine_choice_loader/src/AppBundle/Controller/DefaultController.php).

Basically it loads a form with 3 `EntityType` fields with different classes holding 50 instances each.

(INIT events are profiled with an empty cache)

When | What | Diff (SE => PR)
--------|-------|------
INIT (1) | build form (load types) | [see](https://blackfire.io/profiles/compare/061d5d28-15c6-4e01-b8c0-3edc9cb8daf0/graph)
INIT (2) | build view (load choices) | [see](https://blackfire.io/profiles/compare/04f142a8-d886-405a-be4d-636ba82d8acd/graph)
CACHED | build form (load types) | [see](https://blackfire.io/profiles/compare/293b27b6-aa58-42ae-bafb-655513201505/graph)
CACHED | build view (load choices) | [see](https://blackfire.io/profiles/compare/e5b37dfe-cc9e-498f-b98a-7448830ad190/graph)
SUBMIT | build form (load types) | [see](https://blackfire.io/profiles/compare/7f3baea9-0d27-46b6-8c24-c577742382dc/graph)
SUBMIT | handle request (load choices) | [see](https://blackfire.io/profiles/compare/8644ebfb-4397-495b-8f3d-1a6e1d7f8476/graph)
SUBMIT | build view (load values) | [see](https://blackfire.io/profiles/compare/89c3cc7c-ea07-4300-91b3-99004cb58ea1/graph)

(1):
![build_form-no_cache](https://cloud.githubusercontent.com/assets/10107633/14136166/b5a85eb8-f661-11e5-8556-3e0dcbfaf404.jpg)
(2):
![build_view-no_cache](https://cloud.githubusercontent.com/assets/10107633/14136240/1162f3ee-f662-11e5-834a-1ed1e519dc83.jpg)

It can seem like 1 and 2 balance each other but it comes clear when comparing values:

| -  | Build form | Build view |
|-----|---------|--------------|
| wall time | -88 ms | +9.71 ms
| blocking I/O | -40 ms | +3.67 ms
| cpu | -48 ms | +13.4 ms
| memory | -4.03 MB | +236 kB
| network | -203 B | +2.21 kB

Commits
-------

98621f4 [Form] optimized LazyChoiceList
86b2ff1 [DoctrineBridge] optimized DoctrineChoiceLoader
2016-04-28 12:16:40 +02:00
hamza
191b4954c0 fix #17993 - Deprecated callable strings
ext
2016-04-15 07:55:48 +02:00
Jules Pietri
98621f4355 [Form] optimized LazyChoiceList 2016-04-03 19:07:16 +02: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
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
Tobias Schultze
00e38198b7 [Form] add test for ArrayChoiceList handling null 2016-02-18 14:16:01 +01:00
Christian Flothmann
f204104c3b Merge branch '2.8' into 3.0
* 2.8:
  fixed CS
  [BrowserKit] Corrected HTTP_HOST logic #15398
  Fixed HTTP Digest auth not being passed user checker
  resolve aliases in factories
  resolve aliases in factory services
  Remove invalid CSS white-space value
  Fix FileSystem tests on Windows
  [Form] ArrayChoiceList can now deal with a null in choices
2016-01-27 12:34:55 +01:00
Christian Flothmann
c8d28b1fa6 Merge branch '2.7' into 2.8
* 2.7:
  fixed CS
  [BrowserKit] Corrected HTTP_HOST logic #15398
  resolve aliases in factories
  resolve aliases in factory services
  Remove invalid CSS white-space value
  Fix FileSystem tests on Windows
  [Form] ArrayChoiceList can now deal with a null in choices
2016-01-27 12:34:40 +01:00
Issei.M
68292bb52b [Form] ArrayChoiceList can now deal with a null in choices 2016-01-23 17:56:23 +09:00
Fabien Potencier
a5c0b8f8b9 Merge branch '2.8' into 3.0
* 2.8:
  Typo fix
  [WebProfiler] Fixed sf-minitoolbar height
  [2.3] Static Code Analysis for Components
  [Serializer] Use $context['cache_key'] to enhance caching
  Fixed erroneous deprecation notice for extended Interfaces
  [Routing] cs fix
  Added support \IteratorAggregate for UniqueEntityValidator
  Update AbstractChoiceListTest.php
  Fix #17306 Paths with % in it are note allowed (like urlencoded)
  Use proper class to fetch $versionStrategy property
  Added sort order SORT_STRING for params in UriSigner
  Remove normalizer cache in Serializer class
  [Serializer] ObjectNormalizer: context can contain not serializable data
2016-01-12 18:46:41 +01:00
Fabien Potencier
4ed54a39ab Merge branch '2.7' into 2.8
* 2.7:
  Typo fix
  [2.3] Static Code Analysis for Components
  Added support \IteratorAggregate for UniqueEntityValidator
  Update AbstractChoiceListTest.php
  Fix #17306 Paths with % in it are note allowed (like urlencoded)
  Use proper class to fetch $versionStrategy property
  Added sort order SORT_STRING for params in UriSigner
  Remove normalizer cache in Serializer class
2016-01-12 18:46:01 +01:00
mantulo
0f8da347f8 Update AbstractChoiceListTest.php
fixed phpdoc namespace
2016-01-11 11:03:27 +01:00
Nicolas Grekas
ed0e26a620 [Form] Remove choices_as_values option on ChoiceType 2015-11-28 10:26:50 +01:00
Fabien Potencier
9b9fa3d262 Merge branch '2.8'
* 2.8:
  [Form] Deprecated setting "choices_as_values" to "false"
  [Form] Deprecated setting "choices_as_values" to "false"
  [Form] Deprecated ArrayKeyChoiceList
  [Form] Deprecated TimezoneType::getTimezones()
2015-11-27 11:23:00 +01:00
Bernhard Schussek
3ab8189080 [Form] Deprecated setting "choices_as_values" to "false" 2015-11-27 10:37:24 +01:00
Fabien Potencier
b29691067d feature #16690 [Form] Deprecated ArrayKeyChoiceList (webmozart)
This PR was merged into the 2.8 branch.

Discussion
----------

[Form] Deprecated ArrayKeyChoiceList

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

Commits
-------

5386752 [Form] Deprecated ArrayKeyChoiceList
2015-11-27 10:03:43 +01:00
Bernhard Schussek
5d7678e432 [Form] Deprecated setting "choices_as_values" to "false" 2015-11-27 10:00:10 +01:00
Bernhard Schussek
5386752bf9 [Form] Deprecated ArrayKeyChoiceList 2015-11-26 18:38:25 +01:00
Mikael Pajunen
4e0c6e1b55 Replace is_callable checks with type hints
Also removes tests checking the exceptions thrown from
the removed is_callable checks.
2015-10-05 16:57:27 +02:00
Nicolas Grekas
31eb49863e [3.0] Remove most legacy tests 2015-09-05 22:38:17 +02:00
Nicolas Grekas
e49739c469 [2.7] Clean deprecated interfaces 2015-09-04 22:16:46 +02:00
Abdellatif Ait boudad
835aa788d4 [Form][2.7][ Choice type] fixed groups with empty array. 2015-08-31 20:22:13 +00:00