Commit Graph

20976 Commits

Author SHA1 Message Date
Tobias Nyholm
3f8cd05c34 [Form][WCAG] Errors sign for people that do not see colors 2018-03-01 11:20:19 +01:00
Kai Eichinger
e5734aacc6
Fix typo in test method name
In regards to 8456f3b32c (r171488418)
2018-03-01 10:56:19 +01:00
Fabien Potencier
751196e8f0 updated VERSION for 2.7.42 2018-02-28 14:53:23 -08:00
Fabien Potencier
97cee3a157 Merge branch '4.0'
* 4.0:
  [Form][WCAG] Add hidden labels on date and time fields
  Pass on previous exception in FatalThrowableError
  [Routing] remove dead code
  [Routing] fix typo
  [Form][WCAG] Fixed HTML errors
  fix merge
  [FrameworkBundle] [Console] add a warning when command is not found
  [WebProfilerBundle] limit ajax request to 100 and remove the last one
2018-02-28 13:50:15 -08:00
Fabien Potencier
96aac17c0d Merge branch '3.4' into 4.0
* 3.4:
  [Form][WCAG] Add hidden labels on date and time fields
  Pass on previous exception in FatalThrowableError
  [Routing] remove dead code
  [Routing] fix typo
  [Form][WCAG] Fixed HTML errors
  fix merge
  [FrameworkBundle] [Console] add a warning when command is not found
  [WebProfilerBundle] limit ajax request to 100 and remove the last one
2018-02-28 13:50:02 -08:00
Fabien Potencier
b7b6bd2605 Merge branch '2.8' into 3.4
* 2.8:
  Pass on previous exception in FatalThrowableError
  [Routing] remove dead code
  [Routing] fix typo
2018-02-28 13:49:22 -08:00
Fabien Potencier
3dd843ba7e Merge branch '2.7' into 2.8
* 2.7:
  Pass on previous exception in FatalThrowableError
  [Routing] remove dead code
  [Routing] fix typo
2018-02-28 13:47:46 -08:00
Philipp Keck
b1b6093f3d Pass on previous exception in FatalThrowableError 2018-02-28 13:02:44 -08:00
Nicolas Grekas
a5f58f22d7 [Process] fix interpolation of placeholders 2018-02-28 20:33:07 +01:00
Nicolas Grekas
4ae66dc18d [Routing] Handle "_canonical_route" 2018-02-28 12:40:48 +01:00
Frank de Jonge
e32c414b04 [Routing] Implement i18n routing 2018-02-28 12:40:22 +01:00
Tobias Schultze
f9b54c5ccd [Routing] support scheme requirement without redirectable dumped matcher 2018-02-28 12:35:06 +01:00
Nicolas Grekas
2f4b867b50 [Routing] remove dead code 2018-02-28 10:36:59 +01:00
Nicolas Grekas
c794fa821b [Routing] fix typo 2018-02-28 10:29:53 +01:00
Roland Franssen
fe586acd92 [Config] Backport string|null api for node names 2018-02-27 17:11:57 +01:00
Nicolas Grekas
308e12cb59 Merge branch '4.0'
* 4.0:
  fix merge
2018-02-26 19:13:01 +01:00
Nicolas Grekas
6c32bcd77e fix merge 2018-02-26 19:12:53 +01:00
Nicolas Grekas
add5d84e8c Merge branch '4.0'
* 4.0:
  fix merge
2018-02-26 18:43:03 +01:00
Nicolas Grekas
05782adc3b Merge branch '3.4' into 4.0
* 3.4:
  fix merge
2018-02-26 18:39:40 +01:00
Nicolas Grekas
ea7a66d532 fix merge 2018-02-26 18:39:27 +01:00
Nicolas Grekas
f06fa04ff1 Merge branch '4.0'
* 4.0:
  Fix typos
  [Routing] remove useless failing mocks
  [appveyor] Workaround GitHub disabling of low versions of TLS
  Use long array syntax
  [Routing] Fix GC control of PHP-DSL
  [Routing] Don't throw 405 when scheme requirement doesn't match
  [Routing] Revert throwing 405 on missed slash/scheme redirections
  [WebProfilerBundle] fix test after ajax path updated
  Fix ArrayInput::toString() for InputArgument::IS_ARRAY args
  Update excluded_ajax_paths for sf4
  Add missing use for RoleInterface
  Add missing use of Role
  [Routing] fix CS
  add container.autowiring.strict_mode to 3.4 docs
  Set controller without __invoke method from invokable class
  [VarDumper] Fixed PHPDoc
2018-02-26 18:04:28 +01:00
Nicolas Grekas
8d9d7e7e65 Merge branch '3.4' into 4.0
* 3.4:
  Fix typos
2018-02-26 16:57:42 +01:00
Nicolas Grekas
80f993fdba Fix typos 2018-02-26 16:57:04 +01:00
Nicolas Grekas
b56674720c Merge branch '3.4' into 4.0
* 3.4:
  [Routing] remove useless failing mocks
  [appveyor] Workaround GitHub disabling of low versions of TLS
  Use long array syntax
  [Routing] Fix GC control of PHP-DSL
  [Routing] Don't throw 405 when scheme requirement doesn't match
  [Routing] Revert throwing 405 on missed slash/scheme redirections
  [WebProfilerBundle] fix test after ajax path updated
  Fix ArrayInput::toString() for InputArgument::IS_ARRAY args
  Update excluded_ajax_paths for sf4
  Add missing use for RoleInterface
  [Routing] fix CS
  add container.autowiring.strict_mode to 3.4 docs
  Set controller without __invoke method from invokable class
  [VarDumper] Fixed PHPDoc
2018-02-26 16:55:47 +01:00
Nicolas Grekas
119291883f bug #26318 [Routing] Fix GC control of PHP-DSL (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Routing] Fix GC control of PHP-DSL

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

Adding fluently in a collection is broken currently.

Commits
-------

239f2e2 [Routing] Fix GC control of PHP-DSL
2018-02-26 16:49:59 +01:00
Nicolas Grekas
68ff3d3fa2 Merge branch '2.8' into 3.4
* 2.8:
  [Routing] remove useless failing mocks
2018-02-26 16:48:52 +01:00
Nicolas Grekas
64e538e730 Merge branch '2.7' into 2.8
* 2.7:
  [Routing] remove useless failing mocks
2018-02-26 16:48:27 +01:00
Nicolas Grekas
87bbe5ef5f [Routing] remove useless failing mocks 2018-02-26 16:48:14 +01:00
Nicolas Grekas
0b86145f0b Merge branch '2.8' into 3.4
* 2.8:
  [appveyor] Workaround GitHub disabling of low versions of TLS
  [Routing] Don't throw 405 when scheme requirement doesn't match
  [Routing] Revert throwing 405 on missed slash/scheme redirections
  Fix ArrayInput::toString() for InputArgument::IS_ARRAY args
  [Routing] fix CS
2018-02-26 16:46:28 +01:00
Nicolas Grekas
19d6b592f4 Merge branch '2.7' into 2.8
* 2.7:
  [appveyor] Workaround GitHub disabling of low versions of TLS
  [Routing] Don't throw 405 when scheme requirement doesn't match
  [Routing] Revert throwing 405 on missed slash/scheme redirections
  Fix ArrayInput::toString() for InputArgument::IS_ARRAY args
  [Routing] fix CS
2018-02-26 16:33:21 +01:00
Nicolas Grekas
4f14fff13b bug #26312 [Routing] Don't throw 405 when scheme requirement doesn't match (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[Routing] Don't throw 405 when scheme requirement doesn't match

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

Commits
-------

9d70ef0 [Routing] Don't throw 405 when scheme requirement doesn't match
2018-02-26 16:07:55 +01:00
Nicolas Grekas
04b56d6ddf [appveyor] Workaround GitHub disabling of low versions of TLS 2018-02-26 16:04:10 +01:00
Roland Franssen
2abb8a4fd1 Use long array syntax 2018-02-26 15:27:04 +01:00
Nicolas Grekas
239f2e21e5 [Routing] Fix GC control of PHP-DSL 2018-02-26 14:41:42 +01:00
Nicolas Grekas
9d70ef0915 [Routing] Don't throw 405 when scheme requirement doesn't match 2018-02-25 22:38:00 +01:00
Nicolas Grekas
391b01393d [Routing] Revert throwing 405 on missed slash/scheme redirections 2018-02-25 09:34:03 +01:00
Tobias Schultze
be1a3b4380 feature #26283 [Routing] Redirect from trailing slash to no-slash when possible (nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Routing] Redirect from trailing slash to no-slash when possible

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

Implemented as suggest by @Tobion in https://github.com/symfony/symfony/pull/26059#issuecomment-365071281

When a route for `/foo` exists but the request is for `/foo/`, we now redirect.
(this complements the flipped side redirection, which already exists.)

Commits
-------

69a4e94130 [Routing] Redirect from trailing slash to no-slash when possible
2018-02-24 18:49:49 +01:00
Maxim Lovchikov
f371fd8ced Fix ArrayInput::toString() for InputArgument::IS_ARRAY args 2018-02-24 16:59:02 +00:00
Tobias Schultze
dc56a83e31 minor #26285 [FrameworkBundle] fix lowest supported Serializer version (xabbuh)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[FrameworkBundle] fix lowest supported Serializer version

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

The `AbstractObjectNormalizer::setMaxDepthHandler()` method does not
exist before `symfony/serializer` 4.1.

Commits
-------

3b092a08ea fix lowest supported Serializer version
2018-02-24 03:18:53 +01:00
Tony Tran
05359f310f Add missing use for RoleInterface 2018-02-23 16:50:25 +01:00
Tony Tran
3cfe7d0ee3 Add missing use of Role 2018-02-23 15:40:28 +01:00
Nicolas Grekas
9587d04520 [Routing] fix CS 2018-02-23 15:02:47 +01:00
Amrouche Hamza
965e472acb
[Console] fix console test 2018-02-23 14:20:15 +01:00
Christian Flothmann
3b092a08ea fix lowest supported Serializer version
The `AbstractObjectNormalizer::setMaxDepthHandler()` method does not
exist before `symfony/serializer` 4.1.
2018-02-23 14:04:00 +01:00
Nicolas Grekas
69a4e94130 [Routing] Redirect from trailing slash to no-slash when possible 2018-02-23 13:28:39 +01:00
Fabien Potencier
f48ed85d9d minor #26274 [VarDumper] Fixed PHPDoc (lyrixx)
This PR was merged into the 3.4 branch.

Discussion
----------

[VarDumper] Fixed PHPDoc

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

Commits
-------

38ad82566a [VarDumper] Fixed PHPDoc
2018-02-23 10:06:40 +01:00
Grégoire Pineau
38ad82566a [VarDumper] Fixed PHPDoc 2018-02-22 18:29:24 +01:00
Nicolas Grekas
a8e9337c20 Merge branch '4.0'
* 4.0:
  [travis] fix php-ext/ location
  throw exception if docblock factory does not exist
2018-02-22 13:30:19 +01:00
Nicolas Grekas
cffa7be92f Merge branch '3.4' into 4.0
* 3.4:
  [travis] fix php-ext/ location
  throw exception if docblock factory does not exist
2018-02-22 13:30:04 +01:00
Nicolas Grekas
c5f29423b0 bug #26265 [PropertyInfo] throw exception if docblock factory does not exist (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[PropertyInfo] throw exception if docblock factory does not exist

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

Commits
-------

5cfceed throw exception if docblock factory does not exist
2018-02-22 12:55:31 +01:00
Nicolas Grekas
3609744ab8 Merge branch '4.0'
* 4.0:
  [Translation] Process multiple segments within a single unit.
  Document the container.autowiring.strict_mode option
  fix custom radios/inputs for checkbox/radio type
  Another PR template tweak
  [FrameworkBundle] Add missing XML config for circular_reference_handler. Add tests.
  fix CS
  [PropertyInfo] ReflectionExtractor: give a chance to other extractors if no properties
  Clean calls to http_build_query()
  [WebProfilerBundle] limit ajax request to 100 and remove the last one
  Add support for URL-like DSNs for the PdoSessionHandler
  removed version in @final @internal for version < 4.0
  [HttpFoundation] Fix missing "throw" in JsonResponse
  Improve the documentation of
  Suppress warning from sapi_windows_vt100_support on stream other than STDIO
  removed extra-verbose comments
  Fixes #26136: Avoid emitting warning in hasParameterOption()
  Added a README entry to the PR template
  [HttpFoundation] Add x-zip-compressed to MimeTypeExtensionGuesser.
  [DI] Add null check for removeChild
2018-02-22 12:40:25 +01:00
Nicolas Grekas
0dc6acb123 Merge branch '3.4' into 4.0
* 3.4:
  [Translation] Process multiple segments within a single unit.
  Document the container.autowiring.strict_mode option
  fix custom radios/inputs for checkbox/radio type
  Another PR template tweak
  [FrameworkBundle] Add missing XML config for circular_reference_handler. Add tests.
  fix CS
  [PropertyInfo] ReflectionExtractor: give a chance to other extractors if no properties
  Clean calls to http_build_query()
  [WebProfilerBundle] limit ajax request to 100 and remove the last one
  Add support for URL-like DSNs for the PdoSessionHandler
  [HttpFoundation] Fix missing "throw" in JsonResponse
  Improve the documentation of
  Suppress warning from sapi_windows_vt100_support on stream other than STDIO
  removed extra-verbose comments
  Fixes #26136: Avoid emitting warning in hasParameterOption()
  Added a README entry to the PR template
  [HttpFoundation] Add x-zip-compressed to MimeTypeExtensionGuesser.
  [DI] Add null check for removeChild
2018-02-22 11:50:29 +01:00
Nicolas Grekas
43344598dd Merge branch '2.8' into 3.4
* 2.8:
  Another PR template tweak
  [PropertyInfo] ReflectionExtractor: give a chance to other extractors if no properties
  Clean calls to http_build_query()
  [WebProfilerBundle] limit ajax request to 100 and remove the last one
  [HttpFoundation] Fix missing "throw" in JsonResponse
  Improve the documentation of
  Suppress warning from sapi_windows_vt100_support on stream other than STDIO
  removed extra-verbose comments
  Fixes #26136: Avoid emitting warning in hasParameterOption()
  Added a README entry to the PR template
  [HttpFoundation] Add x-zip-compressed to MimeTypeExtensionGuesser.
  [DI] Add null check for removeChild
2018-02-22 11:48:49 +01:00
Nicolas Grekas
716adf8641 [HttpKernel] Fix BC of the test suite 2018-02-22 11:30:42 +01:00
Nicolas Grekas
76aa86d773 CS fix 2018-02-22 11:06:54 +01:00
Nicolas Grekas
c9092d639c minor #26264 [HttpKernel] fix EventDispatcher component dependency (xabbuh)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[HttpKernel] fix EventDispatcher component dependency

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

Commits
-------

5af9ff1 fix EventDispatcher component dependency
2018-02-22 11:03:46 +01:00
Christian Flothmann
5cfceed460 throw exception if docblock factory does not exist 2018-02-22 10:55:42 +01:00
Christian Flothmann
5af9ff1ec6 fix EventDispatcher component dependency 2018-02-22 09:57:41 +01:00
Nicolas Grekas
70c122b29d [Routing] Fix host vars extraction 2018-02-22 09:38:25 +01:00
Nicolas Grekas
8e207cda80 [Routing] Prevent some double match of hosts 2018-02-22 09:25:11 +01:00
Ryan Rogers
ac5d01f0b5 [Translation] Process multiple segments within a single unit. 2018-02-22 07:28:18 +01:00
Fabien Potencier
7b8934baba feature #25732 [Console] Add option to automatically run suggested command if there is only 1 alternative (pierredup)
This PR was squashed before being merged into the 4.1-dev branch (closes #25732).

Discussion
----------

[Console] Add option to automatically run suggested command if there is only 1 alternative

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

When mistyping a console command, you get an error giving suggested commands.
If there is only 1 alternative suggestion, this PR will give you the option to run that command instead. This makes it easier to run the correct command without having to re-type/copy-paste/update the previous run command

![console](https://user-images.githubusercontent.com/144858/34724377-4b46c726-f556-11e7-94a3-a9d7c9d75e74.gif)

Commits
-------

83d52f02f9 [Console] Add option to automatically run suggested command if there is only 1 alternative
2018-02-22 07:25:56 +01:00
Pierre du Plessis
83d52f02f9 [Console] Add option to automatically run suggested command if there is only 1 alternative 2018-02-22 07:25:54 +01:00
Fabien Potencier
cf045c05d2 bug #26253 [Routing] Fix suffix aggregation (nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Routing] Fix suffix aggregation

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

Commits
-------

1466597bed [Routing] Fix suffix aggregation
2018-02-21 18:58:33 +01:00
Nicolas Grekas
1466597bed [Routing] Fix suffix aggregation 2018-02-21 18:15:56 +01:00
Fabien Potencier
6651087a98 feature #26085 Deprecate bundle:controller:action and service:method notation (Tobion)
This PR was squashed before being merged into the 4.1-dev branch (closes #26085).

Discussion
----------

Deprecate bundle:controller:action and service:method notation

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

The `a::b` notation had some awkward limitations. It supported `MyControllerClass::method` where `MyControllerClass` is either plain class or a service with the same name but the class must exists. This meant it did NOT support `my_service_controller_id::method` because the `class_exists` check would fail at the wrong point in time. But it did support services where class name == id, i.e. the new auto registration based psr naming. This made it very confusing.

I enhanced the `a::b` notation to be very straight forward:
- if `a` exists as a service then use `a` as a service
- otherwise try to use `a` as a class, i.e. `new $a()`
- otherwise check if a::b is a static method (only relevant when the class is abstract or has private contructor). this was potentially supported when using array controller syntax. it now works the same when using the `::` string syntax, like in php itself. since it only happens when nothing else works, it does not have any performance impact.

The old `a:b` syntax is deprecated and just forwards to `a::b` now internally, just as bundle:controller:action.
In general I was able to refactor the logic quite a bit because it always goes through `instantiateController` now.
Spotting deprecated usages is very easy as all outdated routing configs will trigger a deprecation with the DelegatingLoader and it will be normalized in the dumped routes. So you don't get a deprecation again in the ControllerResolver. But if the controller does not come from routing, e.g. twigs render controller function, then it will still be triggered there.

- [x] deprecate `a🅱️c`
- [x] deprecate `a:b`
- [x] update existing references to `a::b`
- [x] fix tests
- [x] fix/add support for static controllers
- [x] add support for closures as controllers
- [x] update Symfony\Component\Routing\Loader\ObjectRouteLoader
- [x] deprecate \Symfony\Bundle\FrameworkBundle\Controller\ControllerNameParser but we still need to use it in several places for BC.
- [x] add changelog/upgrade
- [x] update controller.service_arguments logic for double colon controller syntax

Commits
-------

f8a609cdbd Deprecate bundle:controller:action and service:method notation
2018-02-21 06:14:06 +01:00
Tobias Schultze
f8a609cdbd Deprecate bundle:controller:action and service:method notation 2018-02-21 06:14:04 +01:00
Fabien Potencier
2711d144b1 feature #26175 [Security] Add configuration for Argon2i encryption (CoalaJoe)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Security] Add configuration for Argon2i encryption

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #26174
| License       | MIT
| Doc PR        | [#9300](https://github.com/symfony/symfony-docs/pull/9300)

Feedback?

Current situation: Configuration only applies if argon2i is natively supported.

Commits
-------

1300fece5f [Security] Add configuration for Argon2i encryption
2018-02-20 21:36:26 +01:00
Fabien Potencier
a347f4646f feature #26075 [Validator] Deprecate use of Locale validation constraint without setting "canonicalize" option to true (phansys)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Validator] Deprecate use of `Locale` validation constraint without setting "canonicalize" option to `true`

|Q            |A        |
|---          |---      |
|Branch       |master   |
|Bug fix?     |no       |
|New feature? |no       |
|BC breaks?   |no       |
|Deprecations?|yes      |
|Tests pass?  |yes      |
|Fixed tickets|#22353   |
|License      |MIT      |
|Doc PR       |symfony/symfony-docs#9248|

See https://github.com/symfony/symfony/pull/22353#issuecomment-363671089.

Commits
-------

1572540a3a Deprecate use of `Locale` validation constraint without setting "canonicalize" option to `true`
2018-02-20 20:48:12 +01:00
Javier Spagnoletti
1572540a3a Deprecate use of Locale validation constraint without setting "canonicalize" option to true 2018-02-20 11:33:43 -03:00
Ashura
1300fece5f [Security] Add configuration for Argon2i encryption 2018-02-20 13:01:36 +01:00
Fabien Potencier
e0bdc0c35e feature #26232 [Lock] Add a TTL to refresh lock (jderusse)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Lock] Add a TTL to refresh lock

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | see LockInterface's comment
| Tests pass?   | yes
| Fixed tickets | NA
| License       | MIT
| Doc PR        | NA

Using remote locks in long processes needs to defines a fined grain refresh TTL. For instance, when looping over a long list of jobs we can extends the live of the lock by few seconds before processing each item.
But when the the jobs is splitted and each part to take the same time, we can not define the best TTL

Exemple
```
$lock->acquire();

$this->2minutesJob();

$lock->refresh();
$this->5minutesJob();

$lock->refresh();
$this->1minutesJob();
```

The purpose of this PR is to be able to override the default TTL

```
$lock->acquire();

$lock->refresh(120);
$this->2minutesJob();

$lock->refresh(300);
$this->5minutesJob();

$lock->refresh(60);
$this->1minutesJob();
```

Commits
-------

3b1f3286d8 Add a TTL to refresh lock
2018-02-19 21:30:42 +01:00
Fabien Potencier
ddc32e37b8 bug #26236 [PropertyInfo] ReflectionExtractor: give a chance to other extractors if no properties (dunglas)
This PR was merged into the 2.8 branch.

Discussion
----------

[PropertyInfo] ReflectionExtractor: give a chance to other extractors if no properties

| Q             | A
| ------------- | ---
| Branch?       | 2.8
| Bug fix?      | yes
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | #25803 <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | n/a

For instance when using `__call()`, see #25803.
<!--
- Bug fixes must be submitted against the lowest branch where they apply
  (lowest branches are regularly merged to upper ones so they get the fixes too).
- Features and deprecations must be submitted against the master branch.
- Replace this comment by a description of what your PR is solving.
-->

Commits
-------

270147b04f [PropertyInfo] ReflectionExtractor: give a chance to other extractors if no properties
2018-02-19 21:28:07 +01:00
Fabien Potencier
3cb5619216 feature #26108 [Serializer] Add a MaxDepth handler (dunglas)
This PR was squashed before being merged into the 4.1-dev branch (closes #26108).

Discussion
----------

[Serializer] Add a MaxDepth handler

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | api-platform/core#1130, api-platform/core#1528, api-platform/core#1528 <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | todo <!--highly recommended for new features-->

Sometimes, instead of just stopping the serialization process when the configured max depth is reached, it can be interesting to let the user return something (like returning the identifier of the entity to stop manually the serialization process).

This PR also makes the max depth handling more similar to circular references handling (that already has the possibility to set a handler).

Commits
-------

ed975c764b [Serializer] Add a MaxDepth handler
2018-02-19 21:26:23 +01:00
Kévin Dunglas
ed975c764b [Serializer] Add a MaxDepth handler 2018-02-19 21:26:22 +01:00
Fabien Potencier
297ae74b75 bug #26227 Add support for URL-like DSNs for the PdoSessionHandler (stof)
This PR was merged into the 3.4 branch.

Discussion
----------

Add support for URL-like DSNs for the PdoSessionHandler

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

This allows migrating away from the deprecated DbalSessionHandler when DBAL was used for its ability to be configured through a URL (which is what is provided on Heroku and some other PaaS).

I know that this is technically a new feature (and so may target master instead), but we currently have no way to configure a database session storage on Heroku in 4.0 (and in 3.4, it requires using a deprecated class).

I decided to add support for the URL-like configuration directly rather than adding support for passing a DBAL connection, to minimize the code changes.
I also left out the support for OCI in this feature, as the PDO DSN for the Oracle driver is totally crazy (it has nothing in common with other drivers). If someone wants to use a Oracle DB, they should pass the PDO DSN directly instead of a URL.

Differences with the URL handling in Doctrine DBAL:

- schemeless URLs are not supported (DBAL allows configuring the driver separately in case you don't have it in the URL)
- the query string is ignored (DBAL allows to use the query string to configure any supported DBAL params, which are driver-specific. Just use a DSN directly if you need them. PaaS are unlikely to provide such params anyway and they are the main motivation for this PR)

Commits
-------

14c35ad13c Add support for URL-like DSNs for the PdoSessionHandler
2018-02-19 21:24:12 +01:00
Fabien Potencier
43f8081d60 minor #26225 Make deprecation notices less verbose (fabpot)
This PR was merged into the 4.1-dev branch.

Discussion
----------

Make deprecation notices less verbose

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

I think there is no need to say that deprecated features will be removed in the next major version. That makes messages more verbose for no real reasons.

Commits
-------

0c6ec3fec0 made deprecation notices less verbose
2018-02-19 21:13:12 +01:00
Fabien Potencier
17d1054165 feature #24778 [BrowserKit] add a way to switch to ajax for one request (Simperfit)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[BrowserKit] add a way to switch to ajax for one request

| Q             | A
| ------------- | ---
| Branch?       | 4.1
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #20306
| License       | MIT
| Doc PR        | will do

Follow the work on #20306.

/cc @fabpot is it the right implementation ?

Commits
-------

a10eae7d9e [BrowserKit] add a way to switch to ajax for one request
2018-02-19 21:10:04 +01:00
Fabien Potencier
389efc0af3 minor #26229 removed version in @final @internal for version < 4.0 (fabpot)
This PR was merged into the 4.0 branch.

Discussion
----------

removed version in @final @internal for version < 4.0

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

On 4.0+, I think we can removed the "since version 3.x" from `@final` and `@internal` annotations. I've kept them for things that reference version 4.x.

Commits
-------

ed27b12d2c removed version in @final @internal for version < 4.0
2018-02-19 21:08:53 +01:00
Kévin Dunglas
74cea1d842
feature #25605 [PropertyInfo] Added support for extracting type from constructor (lyrixx)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[PropertyInfo] Added support for extracting type from constructor

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

Commits
-------

adcb25ec01 [PropertyInfo] Added support for extracting type from constructor
2018-02-19 20:25:10 +01:00
Grégoire Pineau
adcb25ec01 [PropertyInfo] Added support for extracting type from constructor 2018-02-19 18:05:30 +01:00
Nicolas Grekas
4be63f9f4a fix CS 2018-02-19 17:55:06 +01:00
Nicolas Grekas
49759e3138 Merge branch '4.0'
* 4.0:
  [Bridge/Twig] fix composer.json
  bug #26086 [FrameworkBundle] Fix using annotation_reader in compiler pass to inject configured cache provider
  [WebProfilerBundle] Fix anchor CSS
  [HttpKernel] Send new session cookie from AbstractTestSessionListener after session invalidation
  [WebProfilerBundle] Tweak default route name
  updated StopwatchEvent phpdoc due to the additional of optional float precision introduced in 0db8d7fb6a
  Retro-fit proxy code to make it deterministic for older proxy manager implementations
  [Serializer] remove unneeded php doc line
  Yaml parser regression with comments and non-strings
  Fixed broken tests
  [TwigBridge] Apply some changes to support Bootstrap4-stable
2018-02-19 17:51:42 +01:00
Nicolas Grekas
2871a96fa7 Merge branch '3.4' into 4.0
* 3.4:
  [Bridge/Twig] fix composer.json
  bug #26086 [FrameworkBundle] Fix using annotation_reader in compiler pass to inject configured cache provider
  [WebProfilerBundle] Fix anchor CSS
  [HttpKernel] Send new session cookie from AbstractTestSessionListener after session invalidation
  [WebProfilerBundle] Tweak default route name
  updated StopwatchEvent phpdoc due to the additional of optional float precision introduced in 0db8d7fb6a
  Retro-fit proxy code to make it deterministic for older proxy manager implementations
  Yaml parser regression with comments and non-strings
  Fix undiscoverablility of SymfonyTestsListenerForV7
  Fixed broken tests
  [TwigBridge] Apply some changes to support Bootstrap4-stable
2018-02-19 17:50:22 +01:00
Nicolas Grekas
b3c7ba715a bug #26157 [HttpKernel] Send new session cookie from AbstractTestSessionListener after session invalidation (rpkamp)
This PR was merged into the 3.4 branch.

Discussion
----------

[HttpKernel] Send new session cookie from AbstractTestSessionListener after session invalidation

When we call `\Symfony\Component\HttpFoundation\Session\Session::invalidate` the session will be emptied and given a new ID, however, since it is empty this `AbstractTestSessionListener` will not send a new cookie to the user, so the user is not caught up to the latest session ID and will re-generate a session with the old session ID on a new visit.
Thus, we the sessionID has changed during a request we must always send a new cookie with the new sessionID, even though the session is empty.

This behaviour is also what is shown in production (non-test) mode.

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

Commits
-------

98f5d53 [HttpKernel] Send new session cookie from AbstractTestSessionListener after session invalidation
2018-02-19 17:33:13 +01:00
Nicolas Grekas
9cbb2569b9 Merge branch '2.7' into 2.8
* 2.7:
  Clean calls to http_build_query()
  [HttpFoundation] Fix missing "throw" in JsonResponse
  Improve the documentation of
  Suppress warning from sapi_windows_vt100_support on stream other than STDIO
  removed extra-verbose comments
  Fixes #26136: Avoid emitting warning in hasParameterOption()
  Added a README entry to the PR template
  [HttpFoundation] Add x-zip-compressed to MimeTypeExtensionGuesser.
  [DI] Add null check for removeChild
2018-02-19 17:23:47 +01:00
Nicolas Grekas
862e347623 minor #26233 Clean calls to http_build_query() (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

Clean calls to http_build_query()

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

Commits
-------

4055224 Clean calls to http_build_query()
2018-02-19 17:21:10 +01:00
Kévin Dunglas
270147b04f
[PropertyInfo] ReflectionExtractor: give a chance to other extractors if no properties 2018-02-19 17:05:09 +01:00
Nicolas Grekas
4055224373 Clean calls to http_build_query() 2018-02-19 15:59:04 +01:00
Amrouche Hamza
a10eae7d9e
[BrowserKit] add a way to switch to ajax for one request 2018-02-19 15:52:00 +01:00
Kévin Dunglas
136408937b
feature #24763 [Process] Allow writing portable "prepared" command lines (Simperfit)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Process] Allow writing portable "prepared" command lines

| Q             | A
| ------------- | ---
| Branch?       | 4.1
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #23778
| License       | MIT
| Doc PR        | symfony/symfony-docs#9295

This give the opportunity to create process commands that allow to changes only the values instead of changing the code.

Commits
-------

d1e4f489d1 [Process] Allow writing portable "prepared" command lines
2018-02-19 15:07:44 +01:00
Kévin Dunglas
e043478ba5
feature #25218 [Serializer] add a constructor arguement to return csv always as collection (Simperfit)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Serializer] add a constructor arguement to return csv always as collection

| Q             | A
| ------------- | ---
| Branch?       |  4.1
| Bug fix?      | yes
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | #21616
| License       | MIT
| Doc PR        | TODO create a doc PR for the 3 ways of getting csv collection, or a single

Coding in the train again ;).
![img_9980](https://user-images.githubusercontent.com/3451634/33417042-f13063e4-d59f-11e7-8f30-143da768b1d7.JPG)

This is to be able to add a new behaviour to the csv encoder when passing the alwaysAsCollection context key, this will return a collection even if there is only one element.

Commits
-------

d19d05dc5d [Serializer] add a context key to return csv always as collection
2018-02-19 15:04:52 +01:00
Amrouche Hamza
d19d05dc5d
[Serializer] add a context key to return csv always as collection 2018-02-19 14:53:53 +01:00
Kévin Dunglas
81e19e8392
feature #25369 [Serializer] add a context key to return always as collection for XmlEncoder (Simperfit)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Serializer] add a context key to return always as collection for XmlEncoder

| Q             | A
| ------------- | ---
| Branch?       | 4.1
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | #25227
| License       | MIT
| Doc PR        |

This PR add a new `as_collection` context key in order to return always as a collection instead of returning a single elements when there are only one array.

there are only one PR for the CsvEncoder don't wanted to have only One PR containing the two changes. It feel better to have two PR that fix the behaviour on two different things. it's easy to review and to revert if it break something (which should not since we are testing the behaviour).

Commits
-------

adb428d314 [Serializer] add a context key to return always as collection for XmlEncoder
2018-02-19 14:49:10 +01:00
Jérémy Derussé
3b1f3286d8
Add a TTL to refresh lock 2018-02-19 14:37:52 +01:00
Christophe Coevoet
14c35ad13c Add support for URL-like DSNs for the PdoSessionHandler
This allows migrating away from the deprecated DbalSessionHandler when
DBAL was used for its ability to be configured through a URL (which is
what is provided on Heroku and some other PaaS).
2018-02-19 14:20:33 +01:00
Fabien Potencier
3303355dbf bug #26140 [Serializer] deserialize as a null when inner object cannot be created and type hint allows null (kbkk)
This PR was squashed before being merged into the 4.1-dev branch (closes #26140).

Discussion
----------

[Serializer] deserialize as a null when inner object cannot be created and type hint allows null

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

```php
class ObjectConstructorDummy
{
    protected $foo;
    public $bar;
    private $baz;

    public function __construct($foo, $bar, $baz)
    {
        $this->foo = $foo;
        $this->bar = $bar;
        $this->baz = $baz;
    }
}

class DummyWithNullableConstructorObject
{
    private $id;
    private $inner;

    public function __construct($id, ?ObjectConstructorDummy $inner)
    {
        $this->id = $id;
        $this->inner = $inner;
    }

    public function getId()
    {
        return $this->id;
    }

    public function getInner()
    {
        return $this->inner;
    }
}
```

Trying to deserialize to `DummyWithNullableConstructorObject` with the following data currently fails:
```php
[
    'id' => 10,
    'inner' => null
]
```

With this PR `DummyWithNullableConstructorObject ` would be constructed with `null` passed as `$inner` because of the type hint.

Commits
-------

2fe9eb1aba [Serializer] deserialize as a null when inner object cannot be created and type hint allows null
2018-02-19 13:37:48 +01:00
Jakub Kisielewski
2fe9eb1aba [Serializer] deserialize as a null when inner object cannot be created and type hint allows null 2018-02-19 13:37:46 +01:00
Fabien Potencier
ed27b12d2c removed version in @final @internal for version < 4.0 2018-02-19 13:18:43 +01:00
Fabien Potencier
0c6ec3fec0 made deprecation notices less verbose 2018-02-19 13:10:10 +01:00
Nicolas Grekas
7490f0b060 [HttpFoundation] Fix missing "throw" in JsonResponse 2018-02-19 12:59:32 +01:00
Remon van de Kamp
98f5d5354e [HttpKernel] Send new session cookie from AbstractTestSessionListener after session invalidation 2018-02-19 11:31:59 +01:00
Amrouche Hamza
d1e4f489d1 [Process] Allow writing portable "prepared" command lines 2018-02-19 09:33:01 +01:00
Matthieu Napoli
0e4d26a568 Improve the documentation of 2018-02-19 08:08:51 +01:00
Adam Klvač
43f942159d Suppress warning from sapi_windows_vt100_support on stream other than STDIO 2018-02-18 14:02:56 +01:00
Nicolas Grekas
d514f819dc [Routing] Fix same-prefix aggregation 2018-02-17 22:03:38 +01:00
Lukas Kahwe Smith
8278a47caa
updated StopwatchEvent phpdoc due to the additional of optional float precision introduced in 0db8d7fb6a 2018-02-17 15:55:25 +01:00
Amrouche Hamza
bbcaaef547
[Serializer] remove unneeded php doc line 2018-02-16 11:10:07 +01:00
Christian Flothmann
7bcccefb60 bug #25787 Yaml parser regression with comments and non-strings (alexpott)
This PR was squashed before being merged into the 3.4 branch (closes #25787).

Discussion
----------

Yaml parser regression with comments and non-strings

| Q             | A
| ------------- | ---
| Branch?       | 3.3 <!-- see below -->
| Bug fix?      | yes
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md files -->
| Tests pass?   | no
| Fixed tickets | #25786
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!--highly recommended for new features-->

<!--
- Bug fixes must be submitted against the lowest branch where they apply
  (lowest branches are regularly merged to upper ones so they get the fixes too).
- Features and deprecations must be submitted against the master branch.
- Replace this comment by a description of what your PR is solving.
-->

Commits
-------

a7e2a49 Yaml parser regression with comments and non-strings
2018-02-16 10:50:28 +01:00
Alex Pott
a7e2a49a78 Yaml parser regression with comments and non-strings 2018-02-16 10:50:20 +01:00
Amrouche Hamza
adb428d314
[Serializer] add a context key to return always as collection for XmlEncoder 2018-02-16 10:06:31 +01:00
Fabien Potencier
233774c929 minor #26191 [HttpFoundation] Add x-zip-compressed to MimeTypeExtensionGuesser. (jenkoian)
This PR was merged into the 2.7 branch.

Discussion
----------

[HttpFoundation] Add x-zip-compressed to MimeTypeExtensionGuesser.

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | no
| New feature?  | yes (kinda)
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | N/A
| License       | MIT
| Doc PR        | N/A

Zip files uploaded on Windows often have a mime type of `x-zip-compressed`. This patch adds support for this mime type to `MimeTypeExtensionGuesser`.

The mime type seems to be a valid mime type for zip files according to http://filext.com/file-extension/ZIP

Commits
-------

ba3e19ae21 [HttpFoundation] Add x-zip-compressed to MimeTypeExtensionGuesser.
2018-02-16 06:45:53 +01:00
Fabien Potencier
800cadfb82 removed extra-verbose comments 2018-02-16 06:42:51 +01:00
Fabien Potencier
9d3d237f18 bug #26156 Fixes #26136: Avoid emitting warning in hasParameterOption() (greg-1-anderson)
This PR was squashed before being merged into the 2.7 branch (closes #26156).

Discussion
----------

Fixes #26136: Avoid emitting warning in hasParameterOption()

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #26136
| License       | MIT
| Doc PR        | n/a

When hasParameterOption / getParameterOption is passed invalid parameters, a warning may be emitted. While the root cause of the warning is an invalid parameter supplied by the caller, earlier versions of Symfony accepted these parameters, which were effectively ignored.

In the context of these methods, what I mean by "invalid parameter" is an empty string, which is the correct datatype, but is not ever a useful thing to provide to these methods. Since empty strings here did not cause a problem in previous versions, and since Symfony is used by all sorts of projects for all sorts of purposes, it seems best to continue to be flexible about the parameters accepted by Symfony APIs.

Commits
-------

b32fdf1ca3 Fixes #26136: Avoid emitting warning in hasParameterOption()
2018-02-16 06:38:36 +01:00
Greg Anderson
b32fdf1ca3 Fixes #26136: Avoid emitting warning in hasParameterOption() 2018-02-16 06:38:34 +01:00
Ian Jenkins
ba3e19ae21 [HttpFoundation] Add x-zip-compressed to MimeTypeExtensionGuesser.
Zip files uploaded on Windows often have a mime type of `x-zip-compressed`. This patch adds support for this mime type to `MimeTypeExtensionGuesser`.

The mime type seems to be a valid mime type for zip files according to http://filext.com/file-extension/ZIP
2018-02-15 15:32:51 +00:00
Fabien Potencier
b0facfec01 feature #26149 Added support for name on the unit node (Nyholm)
This PR was squashed before being merged into the 4.1-dev branch (closes #26149).

Discussion
----------

Added support for name on the unit node

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

See [unit specification](http://docs.oasis-open.org/xliff/xliff-core/v2.0/os/xliff-core-v2.0-os.html#unit) and [name specification](http://docs.oasis-open.org/xliff/xliff-core/v2.0/os/xliff-core-v2.0-os.html#name)

Commits
-------

30a22aaf7f Added support for name on the unit node
2018-02-15 09:01:21 +01:00
Tobias Nyholm
30a22aaf7f Added support for name on the unit node 2018-02-15 09:01:20 +01:00
changmin.keum
a5f05a0486 [DI] Add null check for removeChild 2018-02-15 08:59:01 +01:00
Nicolas Grekas
b375957c8b bug #26167 [TwigBridge] Apply some changes to support Bootstrap4-stable (mpiot, Nyholm)
This PR was merged into the 3.4 branch.

Discussion
----------

[TwigBridge] Apply some changes to support Bootstrap4-stable

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #25655 #25635 #24435
| License       | MIT
| Doc PR        | -

Follow up of https://github.com/symfony/symfony/pull/25715, see discussion there.

This fixes the following errors:
- Delete form-control-label, don't used in Bootstrap 4
- Replace col-form-legend by col-form-label
- Separate the label and input (before the input was in the label)
- Use form-check-inline to put radio and/or checkboxes inline
- Add support of custom form for radio and checkboxes
- Fix input-group: MoneyType (Issue #25655), PercentType
- Remove form-control duplication (Issue #25635)
- Fix Errors in label (#24435)

Commits
-------

14e2282 Fixed broken tests
cf4e956 [TwigBridge] Apply some changes to support Bootstrap4-stable
2018-02-15 08:58:38 +01:00
Nicolas Grekas
5cf0181991 Merge branch '4.0'
* 4.0:
  [Serializer] optims and cleanup
  do not mock the container builder in tests
  [PhpUnitBridge] Added support for PHPUnit 7 in Coverage Listener
  fix accessing request values
  Avoid running the remove command without any packages
  [Form] Add translations for Tagalog
2018-02-14 15:11:22 +01:00
Nicolas Grekas
8faf29f54e Merge branch '3.4' into 4.0
* 3.4:
  [Serializer] optims and cleanup
  do not mock the container builder in tests
  [PhpUnitBridge] Added support for PHPUnit 7 in Coverage Listener
  fix accessing request values
  Avoid running the remove command without any packages
  [Form] Add translations for Tagalog
2018-02-14 15:11:10 +01:00
Nicolas Grekas
4ccf8bcf77 Merge branch '2.8' into 3.4
* 2.8:
  [Serializer] optims and cleanup
  fix accessing request values
  [Form] Add translations for Tagalog
2018-02-14 15:07:03 +01:00
Nicolas Grekas
80e63e4146 Merge branch '2.7' into 2.8
* 2.7:
  [Serializer] optims and cleanup
  [Form] Add translations for Tagalog
2018-02-14 14:58:24 +01:00
Nicolas Grekas
2bccaaa9d1 minor #26141 [Serializer] optims and cleanup (dunglas)
This PR was squashed before being merged into the 2.7 branch (closes #26141).

Discussion
----------

[Serializer] optims and cleanup

| Q             | A
| ------------- | ---
| Branch?       | 2.7 <!-- see below -->
| Bug fix?      | no
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | n/a <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | n/a

Tiny optimizations and small code cleanup. The opcode triggering is especially useful in the hot path (normalizers and encoders) because it's a recursive process.

Commits
-------

8ee8387 [Serializer] optims and cleanup
2018-02-14 14:56:38 +01:00
Kévin Dunglas
8ee83879eb [Serializer] optims and cleanup 2018-02-14 14:56:36 +01:00
Peter Smeets
d845406d35 [Validator] support protocolless urls validation 2018-02-14 14:45:36 +01:00
Nicolas Grekas
6b51addbd2 minor #26165 do not mock the container builder in tests (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

do not mock the container builder in tests

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

Commits
-------

777acfb do not mock the container builder in tests
2018-02-14 13:23:44 +01:00
Nyholm
14e2282513 Fixed broken tests 2018-02-14 13:01:49 +01:00
Christian Flothmann
777acfbac9 do not mock the container builder in tests 2018-02-14 11:03:57 +01:00
Christian Flothmann
1fc5df683b fix accessing request values 2018-02-14 10:05:17 +01:00
Nicolas Grekas
ee8b2015ba [Routing] Handle very large set of dynamic routes 2018-02-13 17:19:02 +01:00
Ergie Gonzaga
6d4e5e0d0a [Form] Add translations for Tagalog 2018-02-13 10:02:42 +01:00
Nicolas Grekas
3edf5f1528 [DI] Top micro benchmarks 2018-02-13 09:15:23 +01:00
Nicolas Grekas
f933f70483 [Routing] Match 77.7x faster by compiling routes in one regexp 2018-02-12 23:03:59 +01:00
Nicolas Grekas
882ffe9ee1 Merge branch '4.0'
* 4.0:
  Fix merge
2018-02-12 19:00:32 +01:00
Nicolas Grekas
bc21af22d7 Merge branch '3.4' into 4.0
* 3.4:
  Fix merge
2018-02-12 19:00:17 +01:00
Nicolas Grekas
01ccae828c Fix merge 2018-02-12 19:00:05 +01:00
Nicolas Grekas
aed5991834 Merge branch '4.0'
* 4.0:
  [Routing] Throw 405 instead of 404 when redirect is not possible
  [Process] fix test case
  Add security.tl.xlf to legacy directory
  [Security][Validator] Add translations for Tagalog
  fixed typo
  Typo fix in security component lithuanian translation.
  [TwigBundle][WebProfilerBundle] Fix JS collision
  [Process] Check PHP_BINDIR before $PATH in PhpExecutableFinder
2018-02-12 18:55:29 +01:00
Nicolas Grekas
f32a50d369 Merge branch '3.4' into 4.0
* 3.4:
  [Routing] Throw 405 instead of 404 when redirect is not possible
  [Process] fix test case
  Add security.tl.xlf to legacy directory
  [Security][Validator] Add translations for Tagalog
  fixed typo
  Typo fix in security component lithuanian translation.
  [TwigBundle][WebProfilerBundle] Fix JS collision
  [Process] Check PHP_BINDIR before $PATH in PhpExecutableFinder
2018-02-12 18:55:14 +01:00
Nicolas Grekas
45145a9f3a Merge branch '2.8' into 3.4
* 2.8:
  [Routing] Throw 405 instead of 404 when redirect is not possible
  [Process] fix test case
  Add security.tl.xlf to legacy directory
  [Security][Validator] Add translations for Tagalog
  fixed typo
  Typo fix in security component lithuanian translation.
  [Process] Check PHP_BINDIR before $PATH in PhpExecutableFinder
2018-02-12 18:55:00 +01:00
Nicolas Grekas
245dd72a4d Merge branch '2.7' into 2.8
* 2.7:
  [Routing] Throw 405 instead of 404 when redirect is not possible
  [Process] fix test case
  Add security.tl.xlf to legacy directory
  [Security][Validator] Add translations for Tagalog
  fixed typo
  Typo fix in security component lithuanian translation.
  [Process] Check PHP_BINDIR before $PATH in PhpExecutableFinder
2018-02-12 18:44:58 +01:00
Fabien Potencier
a2f7982309 feature #22447 [WebProfilerBundle] Imply forward request by a new X-Previous-Debug-Token header (ro0NL)
This PR was squashed before being merged into the 4.1-dev branch (closes #22447).

Discussion
----------

[WebProfilerBundle] Imply forward request by a new X-Previous-Debug-Token header

| Q             | A
| ------------- | ---
| Branch?       | 4.1
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | #... <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!--highly recommended for new features-->

TLDR; imply a "forwarded" request in the profiler if one _returns_ a response with a x-debug-token set. Otherwise dont.
____

Currently a forward request is implied by the WDT/profiler based on the latest sub-request made, however the main request can return it's own response, or one from a non-latest sub-request. The current behavior is a bit misleading imo.

```php
public function indexAction(Request $request)
{
    $bar1 = $this->forward(__CLASS__.'::barAction');
    $bar2 = $this->forward(__CLASS__.'::bar2Action');
    return $bar1;
}
```

It shows the request was forwarded to `bar2Action`. This changes that, so that `barAction` is shown instead. No forward is implied if a new response was returned by `indexAction`.

![image](https://cloud.githubusercontent.com/assets/1047696/25064022/e24d999e-21f1-11e7-8f94-afa3fad7462f.png)

~~Note we dont really need the collector in the framework bundle anymore with this approach.~~ deprecated it.

Commits
-------

07dd09db59 [WebProfilerBundle] Imply forward request by a new X-Previous-Debug-Token header
2018-02-12 18:43:34 +01:00
Roland Franssen
07dd09db59 [WebProfilerBundle] Imply forward request by a new X-Previous-Debug-Token header 2018-02-12 18:43:33 +01:00
Fabien Potencier
aa3a04ad28 bug #26100 [Routing] Throw 405 instead of 404 when redirect is not possible (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[Routing] Throw 405 instead of 404 when redirect is not possible

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

Finishes #25962.

Commits
-------

92842814f6 [Routing] Throw 405 instead of 404 when redirect is not possible
2018-02-12 18:42:00 +01:00
Nicolas Grekas
92842814f6 [Routing] Throw 405 instead of 404 when redirect is not possible 2018-02-12 17:45:29 +01:00
Nicolas Grekas
06ab73bc38 feature #26152 [Intl] Add polyfill for Locale::canonicalize() (nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Intl] Add polyfill for Locale::canonicalize()

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

Required after #26069

Commits
-------

972a330 [Intl] Add polyfill for Locale::canonicalize()
2018-02-12 17:35:36 +01:00
Nicolas Grekas
972a3306ae [Intl] Add polyfill for Locale::canonicalize() 2018-02-12 17:25:54 +01:00
Nicolas Grekas
d317496b6b [Process] fix test case 2018-02-12 15:35:15 +01:00
Nicolas Grekas
45d288a4ae Add security.tl.xlf to legacy directory 2018-02-12 15:12:46 +01:00
Nicolas Grekas
bbcd3d79ff [DI] Move "include_once" out of closure factories 2018-02-12 15:11:06 +01:00
ergiegonzaga
60abecafb9 [Security][Validator] Add translations for Tagalog 2018-02-12 13:32:32 +01:00
Fabien Potencier
2f7f9efbc6 fixed typo 2018-02-12 08:05:20 +01:00
Rokas Mikalkėnas
a0d8b04f7f Typo fix in security component lithuanian translation. 2018-02-12 08:03:35 +01:00
Fabien Potencier
d418395514 minor #26123 [Workflow] Drop nofooter option in PlantUmlDumper (dead code) (lyrixx)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Workflow] Drop nofooter option in PlantUmlDumper (dead code)

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

---

I also update the test suite: Dumping a worklow with a state machine
dumper does not make sense.

Commits
-------

9b946471e0 [Workflow] Drop nofooter option in PlantUmlDumper (dead code)
2018-02-12 07:57:05 +01:00
Fabien Potencier
0b08f37ed3 bug #26040 [Process] Check PHP_BINDIR before $PATH in PhpExecutableFinder (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[Process] Check PHP_BINDIR before $PATH in PhpExecutableFinder

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

Commits
-------

3a470c4ecf [Process] Check PHP_BINDIR before $PATH in PhpExecutableFinder
2018-02-12 07:54:20 +01:00
Nicolas Grekas
e81aa7694c Merge branch '4.0'
* 4.0:
  [YAML] Issue #26065: leading spaces in YAML multi-line string literals
  [Bridge\PhpUnit] Exit as late as possible
  [Bridge\PhpUnit] Cleanup BC layer
  [PhpBridge] add PHPUnit 7 support to SymfonyTestsListener
  [Lock] Log already-locked errors as "notice" instead of "warning"
  add context to serialize and deserialize
  Update Repository Symlink Helper
  isCsrfTokenValid() replace string  by ?string
  Document explicitly that dotfiles and vcs files are ignored by default
  [HttpKernel] don't try to wire Request argument with controller.service_arguments
  Make kernel build time optionally deterministic
  Use 0 for unlimited expiry
  [Routing] fix typo
  Bump default PHPUnit version from 6.3 to 6.5
  do not mock the container builder in tests
  [Cache][WebProfiler] fix collecting cache stats with sub-requests + allow clearing calls
2018-02-11 18:18:00 +01:00
Nicolas Grekas
6e34963b3d Merge branch '3.4' into 4.0
* 3.4:
  [YAML] Issue #26065: leading spaces in YAML multi-line string literals
  [Bridge\PhpUnit] Exit as late as possible
  [Bridge\PhpUnit] Cleanup BC layer
  [PhpBridge] add PHPUnit 7 support to SymfonyTestsListener
  [Lock] Log already-locked errors as "notice" instead of "warning"
  add context to serialize and deserialize
  Update Repository Symlink Helper
  Document explicitly that dotfiles and vcs files are ignored by default
  [HttpKernel] don't try to wire Request argument with controller.service_arguments
  Make kernel build time optionally deterministic
  Use 0 for unlimited expiry
  [Routing] fix typo
  Bump default PHPUnit version from 6.3 to 6.5
  do not mock the container builder in tests
  [Cache][WebProfiler] fix collecting cache stats with sub-requests + allow clearing calls
2018-02-11 18:17:44 +01:00
Nicolas Grekas
8ed107d09c Merge branch '2.8' into 3.4
* 2.8:
  [Bridge\PhpUnit] Exit as late as possible
  Update Repository Symlink Helper
  Document explicitly that dotfiles and vcs files are ignored by default
  do not mock the container builder in tests
2018-02-11 18:15:12 +01:00
Nicolas Grekas
e490d663d6 Merge branch '2.7' into 2.8
* 2.7:
  [Bridge\PhpUnit] Exit as late as possible
  Update Repository Symlink Helper
  Document explicitly that dotfiles and vcs files are ignored by default
  do not mock the container builder in tests
2018-02-11 17:53:59 +01:00
Nicolas Grekas
a23ce690ec bug #26067 [YAML] Issue #26065: leading spaces in YAML multi-line string literals (tamc)
This PR was squashed before being merged into the 3.4 branch (closes #26067).

Discussion
----------

[YAML] Issue #26065: leading spaces in YAML multi-line string literals

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

Doing this:

    Yaml::dump(
        ["text" => "  leading space in first line\nno leading space in last line\n"],
        2,
        4,
        Yaml::DUMP_MULTI_LINE_LITERAL_BLOCK
    );

Will produce this:

    text: |
           leading space in first line
         no leading space in last line

Which is invalid YAML because when the first line has leading spaces it needs a [block indentation indicator](http://www.yaml.org/spec/1.2/spec.html#id2793979) like this:

    text: |4
          leading space in first line
        no leading space in last line

This pull requests contains a test and a patch.

Commits
-------

aa95663 [YAML] Issue #26065: leading spaces in YAML multi-line string literals
2018-02-11 16:00:49 +01:00
Thomas Counsell
aa956636ab [YAML] Issue #26065: leading spaces in YAML multi-line string literals 2018-02-11 16:00:48 +01:00
Nicolas Grekas
404a9ab615 bug #26082 [Cache][WebProfiler][3.4] fix collecting cache stats with sub-requests + allow clearing calls (dmaicher)
This PR was merged into the 3.4 branch.

Discussion
----------

[Cache][WebProfiler][3.4] fix collecting cache stats with sub-requests + allow clearing calls

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/issues/23820
| License       | MIT
| Doc PR        | -

This is a follow-up PR for https://github.com/symfony/symfony/pull/26080. It additionally adds the reset behavior for the `TraceableAdapter` back.

Commits
-------

132bba6 [Cache][WebProfiler] fix collecting cache stats with sub-requests + allow clearing calls
2018-02-11 15:42:07 +01:00
Nicolas Grekas
4c0befc1bb bug #26020 [Lock] Log already-locked errors as "notice" instead of "warning" (Simperfit)
This PR was merged into the 3.4 branch.

Discussion
----------

[Lock] Log already-locked errors as "notice" instead of "warning"

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | #25887 <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | todo

We add the ability to specify the log level we want in the lock component. That could be useful when parsing the logs.

![img_3186 heic](https://user-images.githubusercontent.com/3451634/35733664-8ed991dc-081e-11e8-89dd-9efff253e492.jpeg)

Commits
-------

2a74edb [Lock] Log already-locked errors as "notice" instead of "warning"
2018-02-11 12:30:17 +01:00
Amrouche Hamza
2a74edb0f9 [Lock] Log already-locked errors as "notice" instead of "warning" 2018-02-11 12:27:51 +01:00
andrey1s
6f8d5e263e add context to serialize and deserialize 2018-02-11 12:21:52 +01:00
Nicolas Grekas
57197dbbfd bug #26127 Deterministic time in cache items for reproducible builds (lstrojny)
This PR was merged into the 3.4 branch.

Discussion
----------

Deterministic time in cache items for reproducible builds

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

Allows setting a deterministic time for cache entries. This can be used to seed builds with a deterministic timestamp for reproducibility.

Parent issue is symfony/symfony#25958

Commits
-------

b4259a6 Use 0 for unlimited expiry
2018-02-11 12:04:19 +01:00
Nicolas Grekas
eb53c7de53 bug #26128 Make kernel build time optionally deterministic (lstrojny)
This PR was merged into the 3.4 branch.

Discussion
----------

Make kernel build time optionally deterministic

| Q             | A
| ------------- | ---
| Branch?       | master for features / 2.7 up to 4.0 for bug fixes <!-- see below -->
| Bug fix?      | yes
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

As part of the effort to enable reproducible builds, this PR allows setting a deterministic build time for the dumped kernel. Parent issue is symfony/symfony#25958.

Commits
-------

48e8249 Make kernel build time optionally deterministic
2018-02-11 11:59:17 +01:00
Nicolas Grekas
65bab998e5 minor #26087 do not mock the container builder in tests (xabbuh)
This PR was merged into the 2.7 branch.

Discussion
----------

do not mock the container builder in tests

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

Commits
-------

dab4222 do not mock the container builder in tests
2018-02-11 11:53:40 +01:00
Matthieu Napoli
e88e1ff494 Document explicitly that dotfiles and vcs files are ignored by default
This change makes it clear whether or not each of those two options are enabled by default.

Without this documentation one has to look into the code.
2018-02-11 11:02:34 +01:00
Tobias Schultze
09b9eb2395 [HttpKernel] don't try to wire Request argument with controller.service_arguments
This does not make sense as Request is not a service and it's already handled by RequestValueResolver.
2018-02-11 01:53:06 +01:00
Lars Strojny
48e8249da9 Make kernel build time optionally deterministic 2018-02-11 00:59:14 +01:00
Lars Strojny
b4259a6bf3 Use 0 for unlimited expiry 2018-02-10 17:05:54 +01:00
Nicolas Grekas
ed42760b41 [Routing] fix typo 2018-02-10 11:55:44 +01:00
Christian Flothmann
00cdec9ea2 [PropertyInfo] fix tests 2018-02-09 19:31:25 +01:00
Grégoire Pineau
2ab947f8f1 minor #26122 Revert "[Workflow] Added the symfony/phpunit-bridge" (lyrixx)
This PR was merged into the 4.1-dev branch.

Discussion
----------

Revert "[Workflow] Added the symfony/phpunit-bridge"

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

---

This PR revert #26090. I chatted with @stof and @nicolas-grekas and for now they think the best is to revert this PR.

---

About the previous PR: I made that in ordre to increase the quality via the code coverage of the component.

One thing to know: If the listener is defined in the phpunit.xml.dist the classe has to exist.
If not, phpunit fails.

So if we add the listener in the component, then the deps should be here.

Anyway, people seems to agree that is a bad idea to add the bridge in each component.

So what could we do to enable this listener everywhere in ordre to increase the right computing of the code covarage?

Commits
-------

71c2ecf Revert "[Workflow] Added the symfony/phpunit-bridge"
2018-02-09 16:49:29 +01:00
Christian Flothmann
347438ee36 Merge branch '4.0'
* 4.0:
  fix merge
  Env var maps to undefined constant.
  [SecurityBundle] Backport test
  [Security] fix merge of 2.7 into 2.8 + add test case
  backport regression test from 3.4
  do not mock the container builder or definitions
  fixed CS
  [TwigBundle] Register TwigBridge extensions first
  [WebProfilerBundle] Fix sub request link
  PhpDocExtractor::getTypes() throws fatal error when type omitted
  Fix misspelling variable
  use libsodium to run Argon2i related tests
  [DI] minor: use a strict comparision in setDecoratedService
  [HttpKernel] fix FC
  Follow-on to #25825: Fix edge case in getParameterOption.
  keep the context when validating forms
2018-02-09 16:48:09 +01:00
Grégoire Pineau
9b946471e0 [Workflow] Drop nofooter option in PlantUmlDumper (dead code)
I also update the test suite: Dumping a worklow with a state machine
dumper does not make sense.
2018-02-09 16:44:04 +01:00
Grégoire Pineau
71c2ecfeb1 Revert "[Workflow] Added the symfony/phpunit-bridge"
This reverts commit c32177a1c8.
2018-02-09 16:09:32 +01:00
Grégoire Pineau
f6d741982a feature #26079 [Workflow] Remove constraints on transition/place name + Updated Dumper (lyrixx)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Workflow] Remove constraints on transition/place name + Updated Dumper

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

(ping @Plopix : I changed a bit the puml dumper)

Commits
-------

55a5a7a [Workflow] Remove constraints on transition/place name + Updated Dumper
2018-02-09 15:46:03 +01:00
Grégoire Pineau
d1750e9fd8 minor #26090 [Workflow] Added the symfony/phpunit-bridge (lyrixx)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Workflow] Added the symfony/phpunit-bridge

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

Commits
-------

c32177a [Workflow] Added the symfony/phpunit-bridge
2018-02-09 15:44:41 +01:00
Grégoire Pineau
7db5a73e30 minor #26077 [Workflow] Avoid risky tests (lyrixx)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Workflow] Avoid risky tests

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

Commits
-------

d590ef2 [Workflow] Avoid risky tests
2018-02-09 15:39:40 +01:00
Christian Flothmann
064acb6ac3 Merge branch '3.4' into 4.0
* 3.4:
  Env var maps to undefined constant.
  [SecurityBundle] Backport test
  [Security] fix merge of 2.7 into 2.8 + add test case
  backport regression test from 3.4
  do not mock the container builder or definitions
  fixed CS
  [TwigBundle] Register TwigBridge extensions first
  [WebProfilerBundle] Fix sub request link
  PhpDocExtractor::getTypes() throws fatal error when type omitted
  Fix misspelling variable
  use libsodium to run Argon2i related tests
  [DI] minor: use a strict comparision in setDecoratedService
  [HttpKernel] fix FC
  Follow-on to #25825: Fix edge case in getParameterOption.
  keep the context when validating forms
2018-02-09 15:25:12 +01:00
Christian Flothmann
05a045268f Merge branch '2.8' into 3.4
* 2.8:
  [SecurityBundle] Backport test
  [Security] fix merge of 2.7 into 2.8 + add test case
  backport regression test from 3.4
  Fix misspelling variable
  [DI] minor: use a strict comparision in setDecoratedService
  Follow-on to #25825: Fix edge case in getParameterOption.
  keep the context when validating forms
2018-02-09 15:10:47 +01:00
Christian Flothmann
641a46bcb6 Merge branch '2.7' into 2.8
* 2.7:
  [SecurityBundle] Backport test
  Fix misspelling variable
  [DI] minor: use a strict comparision in setDecoratedService
  Follow-on to #25825: Fix edge case in getParameterOption.
  keep the context when validating forms
2018-02-09 14:57:28 +01:00
Robin Chalas
36e79f7c21 minor #26103 [PropertyInfo] backport regression test from 3.4 (xabbuh)
This PR was merged into the 2.8 branch.

Discussion
----------

[PropertyInfo] backport regression test from 3.4

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

Commits
-------

a9ab167 backport regression test from 3.4
2018-02-09 14:09:13 +01:00
Nicolas Grekas
0c4b32c74b bug #26112 Env var maps to undefined constant. (dsmink)
This PR was submitted for the master branch but it was merged into the 3.4 branch instead (closes #26112).

Discussion
----------

Env var maps to undefined constant.

When I try to use a constant as an environment variable, as described in the blog item,
I run into the following problem.

Env var "SOME_CONST" maps to undefined constant "App\\Util\\SomeClass::SOME_CONST".

The proposed solution works for me, however, I'm not sure if this is the best and conform Symfony standards.

Blog:
https://symfony.com/blog/new-in-symfony-3-4-advanced-environment-variables

| Q             | A
| ------------- | ---
| Branch?       | master for features / 2.7 up to 4.0 for bug fixes <!-- see below -->
| Bug fix?      | yes/no
| New feature?  | yes/no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | yes/no
| Deprecations? | yes/no <!-- don't forget to update UPGRADE-*.md files -->
| Tests pass?   | yes/no
| Fixed tickets | #... <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!--highly recommended for new features-->

<!--
- Bug fixes must be submitted against the lowest branch where they apply
  (lowest branches are regularly merged to upper ones so they get the fixes too).
- Features and deprecations must be submitted against the master branch.
- Replace this comment by a description of what your PR is solving.
-->

Commits
-------

bdf9efc Env var maps to undefined constant.
2018-02-09 14:01:40 +01:00
dsmink
bdf9efc78e Env var maps to undefined constant.
When I try to use a constant as an environment variable, as described in the blog item, 
I run into the following problem.

Env var "SOME_CONST" maps to undefined constant "App\\Util\\SomeClass::SOME_CONST".

The proposed solution works for me, however, I'm not sure if this is the best and conform Symfony standards.

Blog:
https://symfony.com/blog/new-in-symfony-3-4-advanced-environment-variables
2018-02-09 14:01:01 +01:00
Robin Chalas
d195a6f060 [SecurityBundle] Backport test 2018-02-09 13:55:03 +01:00
David Maicher
51d9008d68 [Security] fix merge of 2.7 into 2.8 + add test case 2018-02-09 13:42:37 +01:00
Luís Cobucci
063ca2d708
Fix broken table generation
In 2c9922e8af the code was optimised but
the order of method calls was incorrect, leading to several errors in
the test suite.

Not all the tests related to table generation got fixed, but at least
the component is not broken anymore.

Fixes https://github.com/symfony/symfony/issues/26081
2018-02-09 13:38:11 +01:00
Christian Flothmann
a9ab167abf backport regression test from 3.4 2018-02-09 09:09:30 +01:00
Grégoire Pineau
c32177a1c8 [Workflow] Added the symfony/phpunit-bridge 2018-02-08 11:59:22 +01:00
Grégoire Pineau
d590ef275c [Workflow] Avoid risky tests 2018-02-08 10:57:35 +01:00
Grégoire Pineau
55a5a7a644 [Workflow] Remove constraints on transition/place name + Updated Dumper 2018-02-08 10:50:23 +01:00
Christian Flothmann
dab422287f do not mock the container builder in tests 2018-02-08 09:15:30 +01:00
David Maicher
132bba6d24 [Cache][WebProfiler] fix collecting cache stats with sub-requests + allow clearing calls 2018-02-07 20:03:36 +01:00
Sébastien Decrême
03bce5e50c [PropertyInfo] Add hassers for accessors prefixes 2018-02-07 07:37:57 +01:00
Roland Franssen
2c9922e8af [Console] Improve Table performance 2018-02-07 07:27:48 +01:00
Fabien Potencier
1ec2219773 minor #26069 [LocaleValidator] Use Symfony\Component\Intl\Locale instead of \Locale + read aliases from bundle only if it is required (phansys)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[LocaleValidator] Use `Symfony\Component\Intl\Locale` instead of `\Locale` + read aliases from bundle only if it is required

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

Commits
-------

63497e1761 Use `Symfony\Component\Intl\Locale` instead of `\Locale` + read aliases from bundle only if it is required
2018-02-07 07:16:59 +01:00
Fabien Potencier
f7d9701cdf bug #25893 [Console] Fix hasParameterOption / getParameterOption when used with multiple flags (greg-1-anderson)
This PR was merged into the 2.7 branch.

Discussion
----------

[Console] Fix hasParameterOption / getParameterOption when used with multiple flags

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no (Fixes BC break in #24987)
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #25825
| License       | MIT
| Doc PR        | n/a

Proposed resolution to #25825:
- Back out #24987
- Fix getParameterOption for short options with values, e.g. `-edev`

Commits
-------

35f98e2089 Follow-on to #25825: Fix edge case in getParameterOption.
2018-02-07 07:09:50 +01:00
Fabien Potencier
ec89ac887d feature #25582 [Form] Support \DateTimeImmutable (vudaltsov)
This PR was squashed before being merged into the 4.1-dev branch (closes #25582).

Discussion
----------

[Form] Support \DateTimeImmutable

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #9508
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/8920

This PR implements `input=datetime_immutable`. Replaces #25273.

Commits
-------

034f8b2f23 [Form] Support \DateTimeImmutable
2018-02-07 07:05:28 +01:00
Valentin
034f8b2f23 [Form] Support \DateTimeImmutable 2018-02-07 07:05:04 +01:00
Javier Spagnoletti
63497e1761 Use Symfony\Component\Intl\Locale instead of \Locale + read aliases from bundle only if it is required 2018-02-07 02:53:01 -03:00
Fabien Potencier
0c128f8d3c feature #24705 [Workflow] Add PlantUML dumper to workflow:dump command (Plopix)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Workflow] Add PlantUML dumper to workflow:dump command

| Q             | A
| ------------- | ---
| Branch        | 4.1
| Bug fix       | no
| New feature   | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| License       | MIT
| Doc PR        | Will do depending on the comments about that PR

Hello,

`workflow:dump` exports workflows in `dot` format. To me, this format is not the easiest and not the simplest to use. Styles and logic are mixed together which makes it hard to read.

[PlantUML](http://plantuml.com/) is a tool based on Graphviz like Dot but that
generates nicer diagrams, more readable and most of all easier to adapt to your
documentation. Just copy and paste the PUML on the website you will see the rendering live.

Also, there is a [PHPStorm Plugin](https://plugins.jetbrains.com/plugin/7017-plantuml-integration) and [plenty of integration](http://plantuml.com/running) of this format.

This PR adds 2 options

* a `--dump-format=puml` option to the `workflow:dump` command to generate the workflows in PlantUML.

* a `--puml-transition-format=square|arrow` option to the `workflow:dump` command to generate the workflows in PlantUML using a square shape or arrow for the transition. (see below)

The conversion requires the PlantUML JAR, and can be used like that:
```bash
php bin/console workflow:dump pull_request --dump-format=puml | java -jar plantuml.jar -p  > workflow.png
```
> don't forget the `-p` to enable the "piping"

Here is an example with `pull_request` workflow of the documentation (with no style and no marking):
```
@startuml
title pull_request
state start <<initial>>
state coding
state travis
state review
state merged
state closed
start --> travis: submit
coding --> travis: update
travis --> travis: update
review --> travis: update
travis --> review: wait_for_review
review --> coding: request_change
review --> merged: accept
review --> closed: reject
closed --> review: reopen
@enduml
```

As PlantUML let us define styles, I have provided some by default that the user can override.
Adding some marking:
```bash
php bin/console workflow:dump pull_request travis review --dump-format=puml
```
will give us:

```
@startuml
sprite $sf_logo [81x20/16z] {
hPNRaYiX24K1xwBo_tyx6-qaCtDEJ-KXLYMTLbp0HWcHZr3KRDJ8z94HG3jZn4_mijbQ2ryJoFePtXLWA_qxyGy19DpdY_10z11ZAbGjFHRwcEbcKx5-wqsV
yIMo8StMCHKh8ZUxnEwrZiwRAUOvy1lLcPQF4lEFAjhzMd5WOAqvKflS0Enx8PbihiSYXM8ClGVAseIWTAjCgVSAcnYbQG79xKFsZ0VnDCNc7AVBoPSMcTsX
UnrujbYjjz0NnsObkTgnmolqJD4QgGUYTQiNe8eIjtx4b6Vv8nPGpncn3NJ8Geo9W9VW2wGACm_JzgIO8A8KXr2jUBCVGEAAJSZ6JUlsNnmOzmIYti9G7bjL
8InaHM9G40NkwTG7OxrggvNIejA8AZuqyWjOzTIKi-wwYvjeHYesSWuPiTGDN5THzkYLU4MD5r2_0PDhG7LIUG33z5HtM6CP3icyWEVOS61sD_2ZsBfJdbVA
qM53XHDUwhY0TAwPug3OG9NonRFhO8ynF3I4unuAMDHmSrXH57V1RGvl9jafuZF9ZhqjWOEh98y0tUYGsUxkBSllIyBdT2oM5Fn2-ut-fzsq_cQNuL6Uvwqr
knh4RrvOKzxZfLV3s0rs_R_1SdYt3VxeQ1_y2_W2
}
title pull_request
skinparam titleBorderRoundCorner 15
skinparam titleBorderThickness 2
skinparam state {
    BackgroundColor<<initial>> #87b741
    BackgroundColor<<marked>> #3887C6
    BorderColor #3887C6
    BorderColor<<marked>> Black
    FontColor<<marked>> White
}
state start <<initial>>
state coding
state travis <<marked>>
state review <<marked>>
state merged
state closed
start --> travis: submit
coding --> travis: update
travis --> travis: update
review --> travis: update
travis --> review: wait_for_review
review --> coding: request_change
review --> merged: accept
review --> closed: reject
closed --> review: reopen
footer \nGenerated by <$sf_logo> **Workflow Component** and **PlantUML**
@enduml
```

Which gives you that:
![workflow](https://user-images.githubusercontent.com/313532/32086584-253e39c0-ba8b-11e7-82c7-fa24309dbcd6.png)

With `square` as transition, it gives you that:
![workflow](https://user-images.githubusercontent.com/313532/32533123-a8ea4530-c403-11e7-8f88-4f18d5e23a28.png)

Hope you will find that interesting!

Commits
-------

1497d36cab Add option to the workflow:dump command to allow PlantUML format dump
2018-02-07 06:48:48 +01:00
Fabien Potencier
d068954458 bug #25947 PhpDocExtractor::getTypes() throws fatal error when type omitted (Jared Farrish)
This PR was squashed before being merged into the 3.4 branch (closes #25947).

Discussion
----------

PhpDocExtractor::getTypes() throws fatal error when type omitted

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

When omitting a type in a `DocBlock` `Tag`, it will throw a fatal error due to the type being null with a call to `$tag->getType()`.

Commits
-------

54253ecfff PhpDocExtractor::getTypes() throws fatal error when type omitted
2018-02-07 06:16:39 +01:00
Jared Farrish
54253ecfff PhpDocExtractor::getTypes() throws fatal error when type omitted 2018-02-07 06:16:37 +01:00
Fabien Potencier
dfa7bb44ac feature #24508 [Serializer] Fix security issue on CsvEncoder about CSV injection (welcoMattic)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Serializer] Fix security issue on CsvEncoder about CSV injection

| Q             | A
| ------------- | ---
| Branch?       | master (4.1)
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | yes
| Deprecations? | no
| Tests pass?   | yes
| License       | MIT

I read [this article](http://georgemauer.net/2017/10/07/csv-injection.html) about CSV injection and I thought it best to update the `CsvEncoder` so that it does not generate potentially malicious CSV files by default.

Commits
-------

a1b0bdbbac Fix security issue on CsvEncoder
2018-02-07 06:12:24 +01:00
Fabien Potencier
12447d972f bug #25940 [Form] keep the context when validating forms (xabbuh)
This PR was merged into the 2.7 branch.

Discussion
----------

[Form] keep the context when validating forms

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

Commits
-------

317da3bdf8 keep the context when validating forms
2018-02-07 06:08:29 +01:00
Fabien Potencier
389676c05e feature #25772 [Security] The AuthenticationException should implements Security's ExceptionInterface (sroze)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Security] The AuthenticationException should implements Security's ExceptionInterface

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

Dunno why this is the case right now but this probably should not. Was reported by @paq85.

Commits
-------

0ee4cf1019 The Security Component's exceptions should implements Security's ExceptionInterface
2018-02-07 06:07:12 +01:00
Fabien Potencier
5f0c279227 feature #22353 [Validator] Add canonicalize option for Locale validator (phansys)
This PR was squashed before being merged into the 4.1-dev branch (closes #22353).

Discussion
----------

[Validator] Add `canonicalize` option for `Locale` validator

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

Allow non canonicalized locales ('fr-FR' by instance) to pass the validation.
Relates to symfony/symfony-docs#7660.

Commits
-------

39dfa3d724 [Validator] Add  option for LANG="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_CTYPE="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_ALL= validator
2018-02-07 05:41:52 +01:00
Javier Spagnoletti
39dfa3d724 [Validator] Add option for LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL= validator
2018-02-07 05:41:51 +01:00
Fabien Potencier
c557327d54 feature #26036 Added support for getting default values in Accept headers (javiereguiluz)
This PR was squashed before being merged into the 4.1-dev branch (closes #26036).

Discussion
----------

Added support for getting default values in Accept headers

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

Commits
-------

7e31fd94df Added support for getting default values in Accept headers
2018-02-07 05:37:38 +01:00
Javier Eguiluz
7e31fd94df Added support for getting default values in Accept headers 2018-02-07 05:37:35 +01:00
Mathieu Santostefano
a1b0bdbbac
Fix security issue on CsvEncoder 2018-02-06 11:21:01 +01:00
Nicolas Grekas
7ac5447f57 minor #26049 [DI] minor: use a strict comparison in setDecoratedService (dunglas)
This PR was merged into the 2.7 branch.

Discussion
----------

[DI] minor: use a strict comparison in setDecoratedService

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | no
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Commits
-------

f167b50 [DI] minor: use a strict comparision in setDecoratedService
2018-02-06 11:19:30 +01:00
Gabriel Caruso
899ead2b66
Fix misspelling variable 2018-02-06 07:47:25 -02:00
Kévin Dunglas
f167b505c4
[DI] minor: use a strict comparision in setDecoratedService 2018-02-05 08:51:24 +01:00
Iltar van der Berg
8456f3b32c Deprecated the AdvancedUserInterface 2018-02-04 19:41:02 +01:00
Nicolas Grekas
ae25291610 [HttpKernel] fix FC 2018-02-04 18:41:24 +01:00
Nicolas Grekas
52e9f836b3 fix merge 2018-02-04 18:35:11 +01:00
Dalibor Karlović
8776ccee03 [HttpFoundation] Add RedisSessionHandler 2018-02-04 18:18:03 +01:00
Nicolas Grekas
2ef0d600aa Merge branch '4.0'
* 4.0:
  Use the PCRE_DOLLAR_ENDONLY modifier in route regexes
  [Form] Make sure errors are a part of the label on bootstrap 4 - this is a requirement for WCAG2
  [Config] Only using filemtime to check file freshness
2018-02-04 17:44:20 +01:00
Nicolas Grekas
767b028439 Merge branch '3.4' into 4.0
* 3.4:
  Use the PCRE_DOLLAR_ENDONLY modifier in route regexes
  [Form] Make sure errors are a part of the label on bootstrap 4 - this is a requirement for WCAG2
  [Config] Only using filemtime to check file freshness
2018-02-04 17:43:51 +01:00
Nicolas Grekas
5e094e8752 Merge branch '2.8' into 3.4
* 2.8:
  Use the PCRE_DOLLAR_ENDONLY modifier in route regexes
2018-02-04 17:43:40 +01:00
Nicolas Grekas
c337bf6810 Merge branch '2.7' into 2.8
* 2.7:
  Use the PCRE_DOLLAR_ENDONLY modifier in route regexes
2018-02-04 17:41:06 +01:00
Nicolas Grekas
3a470c4ecf [Process] Check PHP_BINDIR before $PATH in PhpExecutableFinder 2018-02-04 17:22:42 +01:00
Nicolas Grekas
d9e9b261a4 bug #25471 [HttpFoundation] we should not pass size on FileBag removing the contruct parameter (Simperfit, xabbuh)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[HttpFoundation] we should not pass size on FileBag removing the contruct parameter

| Q             | A
| ------------- | ---
| Branch?       | 4.1
| Bug fix?      | yes
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #25466 <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | none

We may have forgotten this one, thanks to @craue for seeing it !

Commits
-------

0db65b5 fix tests
820186f [HttpFoundation] we should not pass size on FileBag
2018-02-04 16:57:00 +01:00
Nicolas Grekas
478fbdc241 bug #25373 Use the PCRE_DOLLAR_ENDONLY modifier in route regexes (mpdude)
This PR was squashed before being merged into the 2.7 branch (closes #25373).

Discussion
----------

Use the PCRE_DOLLAR_ENDONLY modifier in route regexes

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

`UrlMatcher::match($pathinfo)` applies `rawurldecode()` to the `$pathinfo` before trying to match it against the routes.

If the URL contains a percent-encoded trailing newline (like in `/foo%0a`), the default PHP PCRE will still consider `#^/foo$#` a match, as the `$` metacharacter will also match *immediately before* the final character *if it is a newline*. This behavior can be changed by applying the [`PCRE_DOLLAR_ENDONLY` modifier](http://php.net/manual/en/reference.pcre.pattern.modifiers.php).

Without this change, URLs with trailing `%0a` lead to weird notices further down the road, for example when the `RedirectableUrlMatcher` or its equivalent in `PhpMatcherDumper` kick in, look at the last character (this time actually the newline), append a `/` and try to redirect to the resulting URL. Ultimately, PHP will complain with `Warning: Header may not contain more than a single header, new line detected` when sending the `Location` header.

Commits
-------

f713a3e Use the PCRE_DOLLAR_ENDONLY modifier in route regexes
2018-02-04 16:51:07 +01:00
Matthias Pigulla
f713a3e879 Use the PCRE_DOLLAR_ENDONLY modifier in route regexes 2018-02-04 16:50:24 +01:00
Nicolas Grekas
cd56299c14 bug #24435 [Form] Make sure errors are a part of the label on bootstrap 4 - this is a requirement for WCAG2 (Nyholm)
This PR was merged into the 3.4 branch.

Discussion
----------

[Form] Make sure errors are a part of the label on bootstrap 4 - this is a requirement for WCAG2

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!--highly recommended for new features-->

I recently let Europe's leading accessibility experts (Funkanu.se) review a site of mine, they gave me (among other) the feedback that errors should be a part of the label.

They said that it makes no sense for blind users to read label, read input and then read errors.

I know the implementation might look strange. But I wish something like this would be merged. That would be great for accessibility for all apps using Symfony.

We *could* also make sure it prints something like:

```
<label for=”name”>Name: <span class=”hidden”>Error message</span></label>
<input id=”name” type=”text”>
<span aria-hidden=”true”>Error message</span>
```

Commits
-------

a0b40f5 [Form] Make sure errors are a part of the label on bootstrap 4 - this is a requirement for WCAG2
2018-02-04 16:32:16 +01:00
Tobias Nyholm
a0b40f5c4a [Form] Make sure errors are a part of the label on bootstrap 4 - this is a requirement for WCAG2 2018-02-04 16:29:22 +01:00
Nicolas Grekas
ade797058a feature #26028 Unwrap errors in FlattenException (derrabus)
This PR was merged into the 4.1-dev branch.

Discussion
----------

Unwrap errors in FlattenException

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | maybe
| Deprecations? | no
| Tests pass?   | no (but probably unrelated?)
| Fixed tickets | #26025
| License       | MIT
| Doc PR        | N/A

This is probably the most straightforward way to solve #26025. `FlattenException` is now unwrapping `FatalThrowableError` instances and logs the wrapped error instead. The consequence of this change is that the real error class is displayend on TwigBundle's exception page and the profiler.

Regarding BC: If we assume that `FlattenException` is used for rendering and logging, everything should be fine. But this PR changes `FlattenException`'s internal behavior. If a piece of code relied on errors appearing `FatalThrowableError` inside a `FlattenException`, that code would break.

<img width="402" alt="bildschirmfoto 2018-02-02 um 20 08 42" src="https://user-images.githubusercontent.com/1506493/35760077-0b202940-087e-11e8-9b98-8e4ba269780c.png">

Commits
-------

f14d7d6 Unwrap errors in FlattenException.
2018-02-04 16:01:13 +01:00
Nicolas Grekas
cb6c48cc36 minor #26031 [Config] Only using filemtime to check file freshness (dmifedorenko)
This PR was merged into the 3.4 branch.

Discussion
----------

[Config] Only using filemtime to check file freshness

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #25999
| License       | MIT

Commits
-------

52c9cb4 [Config] Only using filemtime to check file freshness
2018-02-04 15:53:45 +01:00
Nicolas Grekas
d2fb4d143e Merge branch '4.0'
* 4.0:
  fix merge
2018-02-04 15:28:49 +01:00
Nicolas Grekas
12c1a01ac0 fix merge 2018-02-04 15:28:36 +01:00
Nicolas Grekas
f601142ccf Merge branch '4.0'
* 4.0:
  [PropertyInfo] Fix compat with recent phpdocumentor/type-resolver
  fix merge
2018-02-04 15:19:27 +01:00
Nicolas Grekas
aa964e1c52 Merge branch '3.4' into 4.0
* 3.4:
  [PropertyInfo] Fix compat with recent phpdocumentor/type-resolver
2018-02-04 15:17:57 +01:00
Nicolas Grekas
ae96700c20 [PropertyInfo] Fix compat with recent phpdocumentor/type-resolver 2018-02-04 15:17:18 +01:00
Nicolas Grekas
2f587c3dce Merge branch '3.4' into 4.0
* 3.4:
  fix merge
2018-02-04 14:31:53 +01:00
Nicolas Grekas
81dafca6db fix merge 2018-02-04 14:31:10 +01:00
Alexander M. Turek
f14d7d6849 Unwrap errors in FlattenException. 2018-02-04 14:22:04 +01:00
Nicolas Grekas
302f33702d Merge branch '4.0'
* 4.0:
  fix merge
  Fix lock strategy tests
  [travis] cache compiled php extensions
  fix merge
  Allow remember-me factory creation when multiple user providers are configured.
  Add tests for glob loaders
  Improve assertions
  [DI][Routing] Fix tracking of globbed resources
  [Config] Handle Service/EventSubscriberInterface in ReflectionClassResource
  always call the parent class' constructor
2018-02-04 14:10:55 +01:00
Nicolas Grekas
752c7cbbbe Merge branch '3.4' into 4.0
* 3.4:
  Fix lock strategy tests
  [travis] cache compiled php extensions
  fix merge
  Allow remember-me factory creation when multiple user providers are configured.
  Add tests for glob loaders
  Improve assertions
  [DI][Routing] Fix tracking of globbed resources
  [Config] Handle Service/EventSubscriberInterface in ReflectionClassResource
  always call the parent class' constructor
2018-02-04 14:08:26 +01:00
Nicolas Grekas
f5060c122b Merge branch '2.8' into 3.4
* 2.8:
  [travis] cache compiled php extensions
  fix merge
2018-02-04 14:00:45 +01:00
Nicolas Grekas
c026ec63e3 bug #25762 [DependencyInjection] always call the parent class' constructor (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[DependencyInjection] always call the parent class' constructor

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

Commits
-------

a1b1484 always call the parent class' constructor
2018-02-04 11:57:21 +01:00
Nicolas Grekas
7a461cff0c minor #25867 [DI] Put non-shared service factories in closures (nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[DI] Put non-shared service factories in closures

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

With this change, non-shared services are moved to dedicated files (unless they are on the hot path).
Previously, they were always dumped as methods.

The goal of this change is to dump factories as methods *if and only if* the services they build are on the hot-path. By doing so, it will become very easy to figure out which services are on the hot path, vs the rest. And then people will be able to optimize their configurations: if too many things are dumped as  methods, it will trivially mean some laziness is missing in definitions.

I spotted this while reviewing the dumped container of Blackfire, where we sometimes have long chains of dependencies that are on the hot path for no real reason - mixed with big non-shared factories (Sonata admin blocks in our case.)

Commits
-------

22c5325 [DI] Put non-shared service factories in closures
2018-02-04 11:44:28 +01:00
Nicolas Grekas
a469490272 bug #25976 [Config] Handle Service/EventSubscriberInterface in ReflectionClassResource (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Config] Handle Service/EventSubscriberInterface in ReflectionClassResource

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

@weaverryan that should fix an issue you reported.

Commits
-------

67e821b [Config] Handle Service/EventSubscriberInterface in ReflectionClassResource
2018-02-04 11:33:42 +01:00
Nicolas Grekas
c57258b308 bug #25989 [DI][Routing] Fix tracking of globbed resources (nicolas-grekas, sroze)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI][Routing] Fix tracking of globbed resources

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

The current `GlobFileLoader` in `Config` misses resource tracking, so we can't use it and have to use a per-component one instead.

(deps=high failures will be fixed after merging up to master.)

Commits
-------

945c753 Add tests for glob loaders
ad98c1fa [DI][Routing] Fix tracking of globbed resources
2018-02-04 11:32:13 +01:00
Nicolas Grekas
9a3aa07d35 minor #26002 Improve assertions (carusogabriel)
This PR was merged into the 3.4 branch.

Discussion
----------

Improve assertions

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

Following #25420 in `3.4` branch.

Commits
-------

829f59d Improve assertions
2018-02-04 11:29:43 +01:00