Commit Graph

23144 Commits

Author SHA1 Message Date
Fabien Potencier
5a2969cf68 bug #29020 Fix ini_get() for boolean values (deguif)
This PR was merged into the 2.8 branch.

Discussion
----------

Fix ini_get() for boolean values

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

Currently setting `false` or `off`, ... value to configure some PHP ini directives will make this evaluated to `true` as this is equal to a non empty string.

Commits
-------

a1538696c3 Fix ini_get() for boolean values
2018-10-31 06:52:40 +01:00
Fabien Potencier
7cb99fa665 [Messenger] marked the component as experimental for 4.2 2018-10-31 06:40:28 +01:00
Jérôme Vasseur
872a772f33 Fix BC break in Kernel name 2018-10-30 21:45:30 +01:00
Nicolas Grekas
0970b09796 Merge branch '4.1'
* 4.1:
  SCA: removed unused variables
  Remove duplicate condition
  fix useless space in docblock
  remove unneeded tearDown method
  [Intl] Update the ICU data to 63.1
  [FrameworkBundle] Fix broken exception message
  [Messenger] send using the routing_key for AMQP transport
  also clean away the NO_AUTO_CACHE_CONTROL_HEADER if we have no session
  [TwigBundle] Fix usage of TwigBundle without FrameworkBundle
  Revert "fixed CS"
  [Serializer] Reduce class discriminator overhead
  Skip empty proxy code
  [Security] Fix "exclude-from-classmap"
  [Security] Removed unsed trait import
  [Config] Fix @method annotation
  add missing double-quotes to extra_fields output message
  [DI] Default undefined env to empty string during compile
  Convert InsufficientAuthenticationException to HttpException
2018-10-30 18:11:56 +01:00
Nicolas Grekas
96fca34f42 minor #29031 SCA: minor code tweaks (kalessil)
This PR was merged into the 4.1 branch.

Discussion
----------

SCA: minor code tweaks

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

Removed unused variables

Commits
-------

e4466bf4f0 SCA: removed unused variables
2018-10-30 18:03:27 +01:00
Nicolas Grekas
4b1db0d32c Merge branch '3.4' into 4.1
* 3.4:
  Remove duplicate condition
  fix useless space in docblock
  remove unneeded tearDown method
  [Intl] Update the ICU data to 63.1
  [FrameworkBundle] Fix broken exception message
  [TwigBundle] Fix usage of TwigBundle without FrameworkBundle
  Revert "fixed CS"
  Skip empty proxy code
  [Security] Fix "exclude-from-classmap"
  add missing double-quotes to extra_fields output message
  Convert InsufficientAuthenticationException to HttpException
2018-10-30 18:00:46 +01:00
Nicolas Grekas
faec03105f Merge branch '2.8' into 3.4
* 2.8:
  Remove duplicate condition
  fix useless space in docblock
  remove unneeded tearDown method
  [FrameworkBundle] Fix broken exception message
  Revert "fixed CS"
  Skip empty proxy code
  [Security] Fix "exclude-from-classmap"
  add missing double-quotes to extra_fields output message
  Convert InsufficientAuthenticationException to HttpException
2018-10-30 17:50:50 +01:00
Nicolas Grekas
0c6f671e8c minor #28938 Revert "fixed CS" (keradus)
This PR was merged into the 2.8 branch.

Discussion
----------

Revert "fixed CS"

This reverts commit d48a3776fe.

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

This PR reverts #28814 , that was caused as a bug of PHP CS Fixer fixed in https://github.com/FriendsOfPHP/PHP-CS-Fixer/pull/4027

After fix on PHP CS Fixer side, the rule is passing now at Symfony's codebase.

This PR only reverts wrong chances done by PHP CS Fixer,
it does not apply new rule requested in #28817 ( https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues/4045 )

Commits
-------

6f83d9f9a3 Revert "fixed CS"
2018-10-30 17:42:45 +01:00
Vladimir Reznichenko
e4466bf4f0 SCA: removed unused variables 2018-10-30 17:39:32 +01:00
François-Xavier de Guillebon
a1538696c3
Fix ini_get() for boolean values 2018-10-30 17:24:01 +01:00
Nguyen Xuan Quynh
925842af60 Remove duplicate condition 2018-10-30 15:26:34 +01:00
Nicolas Grekas
2cd1e11847 feature #29006 [Messenger] make TraceableMiddleware decorate a StackInterface instead of each middleware to free the callstack from noisy frames (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Messenger] make TraceableMiddleware decorate a StackInterface instead of each middleware to free the callstack from noisy frames

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

Right now, `TraceableMiddleware` works as a middleware decorator for the "handle" method. It means that *each middleware* frame in the call stack is wrapped between two noisy extra frames.
This is something we can remove by decorating the StackInterface instead: let's just stop/start events when the next middleware is fetched.
Thanks to this, only one frame *per bus* is added to measure middleware timings.

Commits
-------

73c8c23c79 [Messenger] make TraceableMiddleware decorate a StackInterface instead of each middleware to free the callstack from noisy frames
2018-10-30 15:13:15 +01:00
vladimir.reznichenko
636a872389 SCA: reverted code style changes 2018-10-30 14:18:25 +01:00
vladimir.reznichenko
c926b1abd3 SCA: reverted code style changes 2018-10-30 14:12:48 +01:00
Nicolas Grekas
73c8c23c79 [Messenger] make TraceableMiddleware decorate a StackInterface instead of each middleware to free the callstack from noisy frames 2018-10-29 21:18:59 +01:00
Nicolas Grekas
c2e55ff3f4 [DI] minor fix 2018-10-29 18:21:05 +01:00
Nicolas Grekas
9075d2e64e minor #29013 [HTTP Foundtation] Fix useless space in docblock (ismail1432)
This PR was merged into the 2.8 branch.

Discussion
----------

[HTTP Foundtation] Fix useless space in docblock

I Just removed a useless space in PHP Doc, I don't know if target the 2.8 branch is enough to others SF versions

Commits
-------

6ba75734d6 fix useless space in docblock
2018-10-29 12:11:57 +01:00
Nicolas Grekas
41f57edf97 minor #29015 [Process] fix transient test (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Process] fix transient test

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

Commits
-------

2f736a07fc [Process] fix transient test
2018-10-29 12:09:57 +01:00
Nicolas Grekas
f5d390800b minor #29016 [VarExporter] Cleanup unused var (ro0NL)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[VarExporter] Cleanup unused var

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #...   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

<!--
Write a short README entry for your feature/bugfix here (replace this comment block.)
This will help people understand your PR and can be used as a start of the Doc PR.
Additionally:
 - 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.
-->

Commits
-------

d254004c26 [VarExporter] Cleanup unused var
2018-10-29 12:06:16 +01:00
Roland Franssen
d254004c26 [VarExporter] Cleanup unused var 2018-10-29 11:58:48 +01:00
Nicolas Grekas
2f736a07fc [Process] fix transient test 2018-10-29 10:58:56 +01:00
Smaine Milianni
6ba75734d6 fix useless space in docblock 2018-10-29 08:56:04 +01:00
Kévin Dunglas
c10710c01e
[DotEnv] Fix loadForEnv PHPDoc 2018-10-29 08:11:34 +01:00
Vladimir Reznichenko
300b31fa75 SCA: applied requested code style changes 2018-10-28 19:42:32 +01:00
Vladimir Reznichenko
0180cb936f SCA: simplify some ifs in favour of null coalescing operator 2018-10-28 19:38:52 +01:00
Fabien Potencier
084fa5433b feature #28952 [Translation] allow using the ICU message format using domains with the "+intl-icu" suffix (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Translation] allow using the ICU message format using domains with the "+intl-icu" suffix

| Q             | A
| ------------- | ---
| Branch?       | 4.2
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no (unless merged after 4.2)
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

This PR replaces the `FallbackFormatter` logic by explicit opt-in.
This allows triggering accurate exceptions when one wants to use the ICU message format but the extension (or the polyfill) is missing.
The way to opt-in is to put messages in a domain with the `+intl-icu` suffix *at loading/declaration time*.
E.g. translations in `messages+intl-icu.en.yaml` will be read as part of the `messages` domain , but will be parsed by intl's `MessageFormatter` instead of the default Symfony one.
To make it seamless to adopt the ICU format, `%`s are trimmed from parameter keys (idea borrowed from https://github.com/webfactory/WebfactoryIcuTranslationBundle)

This is for 4.2 as it changes a feature that is not released yet.
ping @Nyholm - we drafted this together.

Commits
-------

d95cc4d4c6 [Translation] allow using the ICU message format using domains with the "+intl-icu" suffix
2018-10-28 19:21:04 +01:00
Laurent VOULLEMIER
8abb05607b [Security][SecurityBundle] Add voter individual decisions to profiler 2018-10-28 18:49:26 +01:00
Samuel NELA
4b3fdd60d1 [BrowserKit] Remove undefined variable 2018-10-28 13:36:14 +01:00
Darryl Hein
feba3816dc
remove unneeded tearDown method 2018-10-27 15:32:49 -06:00
Fabien Potencier
b6758e9614 feature #28985 [Messenger] Move MiddlewareTestCase in Test ns (ogizanagi)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Messenger] Move MiddlewareTestCase in Test ns

| Q             | A
| ------------- | ---
| Branch?       | master <!-- see below -->
| Bug fix?      | no
| New feature?  | yes <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes (AppVeyor failure unrelated)    <!-- please add some, will be required by reviewers -->
| Fixed tickets | N/A   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

Just a quick suggestion after #28943 being merged. Wouldn't it make sense to move this in `Test` namespace to be used by anyone wanting to unit test their middleware?

Commits
-------

215c895a55 [Messenger] Move MiddlewareTestCase in Test ns
2018-10-27 20:08:52 +02:00
Maxime Steinhausser
215c895a55 [Messenger] Move MiddlewareTestCase in Test ns 2018-10-27 18:09:57 +02:00
Fabien Potencier
9bb60c9642 feature #28854 [VarDumper] Scroll into view when searching (ro0NL)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[VarDumper] Scroll into view when searching

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #...   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

This jumps to the found element when using the javascript widget for searching HTML dumps. Inspired by Ctrl+F in Chrome :)

It's super convenient with long dumps, however i wasnt able to position the search input on the right in a fixed manner... because CSS 😓 i was hoping @ogizanagi could add a patch for it.

Also see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView

Commits
-------

647a937abc [VarDumper] Scroll into view when searching
2018-10-27 18:01:10 +02:00
Jakub Zalas
76bc6f0f28 [Intl] Update the ICU data to 63.1 2018-10-27 17:56:20 +02:00
Vladimir Reznichenko
b12c89d481 SCA: fixed broken tests 2018-10-26 17:01:50 +02:00
vladimir.reznichenko
42e96ff7a2 SCA: applied code style as per guidelines 2018-10-26 15:43:57 +02:00
vladimir.reznichenko
8dbd927a33 SCA: minor code tweaks 2018-10-26 15:40:38 +02:00
Fabien Potencier
031762e191 minor #28988 Remove reference to http digest authentication (SamFleming)
This PR was merged into the 4.2-dev branch.

Discussion
----------

Remove reference to http digest authentication

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets |    <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | <!-- required for new features -->

<!--
Write a short README entry for your feature/bugfix here (replace this comment block.)
This will help people understand your PR and can be used as a start of the Doc PR.
Additionally:
 - 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.
-->
Seeing as HTTP Digest has been deprecated / removed, the README shouldn't be advertising it as a feature.

This is especially important seeing as sites such as packagist display the README to advertise the features/usage of a package. See https://packagist.org/packages/symfony/security

Commits
-------

9702a212e2 Remove reference to http digest authentication
2018-10-26 10:51:06 +02:00
Sam Fleming
9702a212e2
Remove reference to http digest authentication
Seeing as HTTP Digest has been deprecated / removed, the README shouldn't be advertising it as a feature.
2018-10-26 09:20:42 +01:00
Nicolas Grekas
4b0e015402 [Messenger] make dispatch(), handle() and send() methods return Envelope 2018-10-26 10:10:48 +02:00
Fabien Potencier
08eaf18d99 feature #28533 [DotEnv] Add a new loadForEnv() method mimicking Ruby's dotenv behavior (dunglas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[DotEnv] Add a new loadForEnv() method mimicking Ruby's dotenv behavior

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? |no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | helps for symfony/recipes#465, symfony/recipes#408
| License       | MIT
| Doc PR        | todo

This PR adds a new `loadForEnv()` method that mimics the behavior of [Create React App](https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#what-other-env-files-can-be-used), [Rails' DotEnv](https://github.com/bkeepers/dotenv#what-other-env-files-can-i-use) and probably some other libs:

`DotEnv::loadForEnv()` will load the following files, starting from the bottom. The first value set (or those already defined in the environment) take precedence:

- `.env` - The Original®
- `.env.dev`, `.env.test`, `.env.prod`... - Environment-specific settings.
- `.env.local` - Local overrides. This file is loaded for all environments _except_ `test`.
- `.env.dev.local`, `.env.test.local`, `.env.prod.local`... - Local overrides of environment-specific settings.

The plan is to use this method in the default SF installation (symfony/recipes#466).

Commits
-------

774a78c8de [DotEnv] Add a new loadForEnv() method mimicking Ruby's dotenv behavior
2018-10-26 08:39:44 +02:00
Samuel ROZE
61ec2814f3 feature #28943 [Messenger] Add StackInterface, allowing to unstack the call stack (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Messenger] Add `StackInterface`, allowing to unstack the call stack

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

At the moment, debugging an exception coming from a middleware is not as friendly as it could: each middleware is preceded by a noisy frame added by the `$next` callable indirection.

This PR allows removing this frame by using `$next()->handle($envelope, $next);` instead of `$next($envelope);` in a middleware. Note that this is optional so that the later continues to work. But if one wants to opt-in for the former, then the stack trace of exceptions will be freed from `$next`.

All core middleware should do this, so here they are, updated.

Commits
-------

2bc7d11ad3 [Messenger] Add `StackInterface`, allowing to unstack the call stack
2018-10-25 18:53:20 +02:00
Nicolas Grekas
2bc7d11ad3 [Messenger] Add StackInterface, allowing to unstack the call stack 2018-10-25 18:34:40 +02:00
Fabien Potencier
b01ea272ce feature #28860 [Form] Deprecate TimezoneType regions option (ro0NL)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Form] Deprecate TimezoneType regions option

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | yes
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #28848
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

I know i've added this option myself in 4.1, but given my recent development for #28624 i realized it's an opinionated feaure, which can/should be solved on user-side (`choice_filter/choice_loader` and/or `group_by`).

- blocks translations as we dont have them (see #28831)
- blocks possibility of switching to Intl zones which doesnt really have this filter feature (see #28836)

~While at it, i solved a few issues with `OptionsResolver` that is able to deprecate options as of 4.2 also.~ Fixed in #28878

- when resolved trigger the deprecation
- allow to opt-out from triggering the deprecation
- dont trigger deprecation for default values (only given ones)

Commits
-------

5cb532d2de [Form] Deprecate TimezoneType regions option
2018-10-25 15:13:24 +02:00
Nicolas Grekas
666d2d962b [Messenger] send using the routing_key for AMQP transport 2018-10-25 11:24:34 +02:00
Nicolas Grekas
aedb281b76 [Messenger] remove AllowNoHandlerMiddleware in favor of a constructor argument on HandleMessageMiddleware 2018-10-25 11:11:58 +02:00
Samuel ROZE
2b7ac81d9b feature #28947 [Messenger] remove classifying sub-namespaces in favor of semantic ones (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Messenger] remove classifying sub-namespaces in favor of semantic ones

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

While working on the component, I found it hard to discover the meaning of the `Asynchronous` and `Enhancers` sub-namespaces. Now that I know the component better, I understand they're only classifying namespaces with no specific technical semantics.

I'd like to remove them to make the component easier to discover.
This PR introduces a few new semantic sub-namespaces instead.

From the changelog:
  * Classes in the `Middleware\Enhancers` sub-namespace have been moved to the `Middleware` one
 * Classes in the `Asynchronous\Routing` sub-namespace have been moved to the `Transport\Sender\Locator` sub-namespace
 * The `Asynchronous/Middleware/SendMessageMiddleware` class has been moved to the `Middleware` namespace
 * `SenderInterface` and `ChainSender` classes have been moved to the `Transport\Sender` sub-namespace
 * `ReceiverInterface` and its implementations have been moved to the `Transport\Receiver` sub-namespace

Commits
-------

16afb5e2b4 [Messenger] remove classifying sub-namespaces in favor of semantic ones
2018-10-25 11:05:42 +02:00
Roland Franssen
5cb532d2de [Form] Deprecate TimezoneType regions option 2018-10-25 10:54:23 +02:00
Nicolas Grekas
16afb5e2b4 [Messenger] remove classifying sub-namespaces in favor of semantic ones 2018-10-25 09:48:15 +02:00
Yonel Ceruto
8398947c9c Fixed explicitly ignores a depreciation 2018-10-24 08:06:04 -04:00
Nicolas Grekas
d95cc4d4c6 [Translation] allow using the ICU message format using domains with the "+intl-icu" suffix 2018-10-24 12:49:53 +02:00
karser
8238f167ad [PropertyAccessor] Fix unable to write to singular property using setter while plural adder/remover exist 2018-10-24 13:47:17 +03:00
Nicolas Grekas
8c24c35fe8 minor #28965 [Process] pass all output to the wait-until callback (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Process] pass all output to the wait-until callback

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

Introduced yesterday, my bad.
Should make appveyor green hopefully.

Commits
-------

a320133b1d [Process] pass all output to the wait-until callback
2018-10-24 12:37:43 +02:00
Nicolas Grekas
a320133b1d [Process] pass all output to the wait-until callback 2018-10-24 12:10:48 +02:00
Kévin Dunglas
774a78c8de [DotEnv] Add a new loadForEnv() method mimicking Ruby's dotenv behavior 2018-10-24 11:38:56 +02:00
Christian Flothmann
fa3586029f catch any UnexpectedValueException on validation 2018-10-24 09:52:19 +02:00
Fabien Potencier
9d3621eadb bug #28878 [OptionsResolver] Trigger deprecation only if the option is used (yceruto)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[OptionsResolver] Trigger deprecation only if the option is used

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

It's true that showing a deprecation message when the option is not used is a bit annoying and it would be heavy to get rid of it.

Now, a deprecated option is triggered only when it's provided by the user or each time is being called from a lazy evaluation (except for deprecations based on the value, they're triggered only when provided by the user).

Commits
-------

1af23c9a74 [OptionsResolver] Trigger deprecation only if the option is used
2018-10-24 05:25:07 +02:00
Yonel Ceruto
1af23c9a74 [OptionsResolver] Trigger deprecation only if the option is used 2018-10-24 05:23:30 +02:00
Fabien Potencier
01dfca1590 feature #28934 [WebProfilerBundle] Add channel log filter (ro0NL)
This PR was squashed before being merged into the 4.2-dev branch (closes #28934).

Discussion
----------

[WebProfilerBundle] Add channel log filter

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #...   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Continuation of #28906

The JS is revised to be more generic;

- support 2 filter types: `level` and `choice` (respectively `Log level` and `Log channel` here)
- remove default filter value support (not used yet, but opportunity kept open) - it requires a bit more work to genericify it.
- filters refines the resultset (e.g. show all logs in the app channel with priority higher than alert)

![image](https://user-images.githubusercontent.com/1047696/47257162-b01bfe00-d48a-11e8-8364-d1eca69c9182.png)

Level filter (works the same as shown in #28906 )

![image](https://user-images.githubusercontent.com/1047696/47257699-78648480-d491-11e8-8c55-1dccda980de4.png)

Choice filter

![image](https://user-images.githubusercontent.com/1047696/47257205-3c2e2580-d48b-11e8-821b-e95bfed36331.png)

![image](https://user-images.githubusercontent.com/1047696/47257209-4bad6e80-d48b-11e8-8fcc-e868aa556ff8.png)

We forgot to update TwigBundle previously, that's still needed after review here.

Commits
-------

e1bd82e89c [WebProfilerBundle] Add channel log filter
2018-10-24 05:22:28 +02:00
Roland Franssen
e1bd82e89c [WebProfilerBundle] Add channel log filter 2018-10-24 05:22:15 +02:00
David Buchmann
28d9f0c84c also clean away the NO_AUTO_CACHE_CONTROL_HEADER if we have no session 2018-10-23 16:30:58 +02:00
Roland Franssen
f5c355e1ba [WebProfilerBundle] Remove application name 2018-10-23 14:46:28 +02:00
Nicolas Grekas
946d278d7d [Process] fix waitUntil+add tests 2018-10-23 11:03:43 +02:00
Nicolas Grekas
fc7aeb95e0 bug #28940 [Process] Adds usleep(1000) to ease CPU usage. (miniyarov)
This PR was squashed before being merged into the 4.2-dev branch (closes #28940).

Discussion
----------

[Process] Adds usleep(1000) to ease CPU usage.

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

Commits
-------

9d1416ad82 [Process] Adds usleep(1000) to ease CPU usage.
2018-10-23 09:28:42 +02:00
Ulugbek Miniyarov
9d1416ad82 [Process] Adds usleep(1000) to ease CPU usage. 2018-10-23 09:28:33 +02:00
Nicolas Grekas
717ff2dd68 minor #28737 [DependencyInjection] Optimize exporting variables (Sander van der Vlugt)
This PR was squashed before being merged into the 4.2-dev branch (closes #28737).

Discussion
----------

[DependencyInjection] Optimize exporting variables

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

Store previously resolved variables so that the relatively expensive function [resolveEnvPlaceholders](3e7b029524/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php (L1776)) is not called unnecessarily.

The effect on running ```bin/console``` with an empty cache in a big application (200+ env variables) in seconds:

| Before     | After      |
|------------|------------|
| 24.1       | 15.8       |
| 24.5       | 16.0       |
| 24.7       | 16.3       |
| 24.2       | 16.0       |
|  Avg: 24.4 | Avg:16.0   |

Commits
-------

768de2f7d9 [DependencyInjection] Optimize exporting variables
2018-10-23 09:21:59 +02:00
Sander van der Vlugt
768de2f7d9 [DependencyInjection] Optimize exporting variables 2018-10-23 09:21:50 +02:00
Nicolas Grekas
60394bc348 minor #28200 [Config] Fix slow service discovery for large excluded directories (gonzalovilaseca)
This PR was squashed before being merged into the 4.2-dev branch (closes #28200).

Discussion
----------

[Config] Fix slow service discovery for large excluded directories

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

Not sure if this is a bug fix or not, is more an improvement.
Please for all detail follow the conversation here:
https://github.com/symfony/symfony/issues/26736

Commits
-------

fa731e53e9 [Config] Fix slow service discovery for large excluded directories
2018-10-23 09:19:46 +02:00
Gonzalo Vilaseca
fa731e53e9 [Config] Fix slow service discovery for large excluded directories 2018-10-23 09:19:36 +02:00
Kévin Dunglas
426cf81c16
feature #28709 [Serializer] Refactor and uniformize the config by introducing a default context (dunglas)
This PR was squashed before being merged into the 4.2-dev branch (closes #28709).

Discussion
----------

[Serializer] Refactor and uniformize the config by introducing a default context

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | yes <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | todo <!-- required for new features -->

This PR uniformizes how the Serializer's configuration is handled:

* As currently, configuration options can be set using the context (options that weren't configurable using the context have been refactored to leverage it)
* Normalizers and encoders' constructors now accept a "default context"
* All existing global configuration flags (constructor parameters) have been deprecated in favor of this new default context
* the stateless context is always tried first, then is the default context

Some examples:

```php
// Configuring groups globally
// Before: not possible
// After
$normalizer = new ObjectNormalizer(/* deps */, ['groups' => 'the_default_group']);

// Escaping Excel-like formulas in CSV files
// Before
$encoder = new CsvEncoder(',', '"', '\\', '.', true);
// After
$encoder = new CsvEncoder(['csv_escape_formulas' => true]);
$encoder->normalize($data, 'csv', ['csv_escape_formulas' => false]); // Override for this call only
```

Benefits:

* The DX is dramatically improved, configuration is always handled in similar way
* The serializer can be used in fully stateless way
* Every options can be configured globally
* Classes that had constructors with a lot of parameters (like `CsvEncoder`) are now much easier to use
* We'll be able to improve the documentation by adding a dictionary of all available context options for the whole component
* Everything can be configured the same way

TODO in subsequent PRs:

* Add a new option in framework bundle to configure the context globally
* Uniformize the constants name (sometimes the name if `FOO`, sometimes `FOO_KEY`)
* Fix the "bug" regarding the format configuration in `DateTimeNormalizer::denormalize()`  (see comments)
* Maybe: move `$defaultContext` as the first parameter (before required services?)
* Make `XmlEncoder` stateless

Commits
-------

52b186a210 [Serializer] Refactor and uniformize the config by introducing a default context
2018-10-23 08:24:58 +02:00
Kévin Dunglas
52b186a210
[Serializer] Refactor and uniformize the config by introducing a default context 2018-10-23 08:24:47 +02:00
alex
3db84789f2 Merging arrays in a loop is slow and causes high CPU usage 2018-10-22 18:12:06 +02:00
Samuel ROZE
9aaec948d5 minor #28908 [Messenger] internal cleanups (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Messenger] internal cleanups

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

From the updated changelog:
 * `MessengerDataCollector::getMessages()` returns an iterable, not just an array anymore
 * `AbstractHandlerLocator` is now internal
 * `HandlerLocatorInterface::resolve()` has been replaced by `getHandler(Envelope $envelope)`
 * `SenderLocatorInterface::getSenderForMessage()` has been replaced by `getSender(Envelope $envelope)`
 * `SenderInterface::send()` returns `void`

+ some internal simplifications

Commits
-------

4a3edd0b37 [Messenger] internal cleanups
2018-10-21 16:29:45 +01:00
Nicolas Grekas
4a3edd0b37 [Messenger] internal cleanups 2018-10-21 16:46:18 +02:00
Nicolas Grekas
6a5d7a1aac [Messenger] make middlewares truly lazy on a bus 2018-10-21 15:50:49 +02:00
Nicolas Grekas
ae46a436e7 [Messenger] make Envelope first class citizen for middleware handlers 2018-10-21 14:43:41 +02:00
Samuel ROZE
d901c6d846 feature #28909 [Messenger] made dispatch() and handle() return void (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Messenger] made dispatch() and handle() return void

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

Middlewares and dispatchers should not return any value. Forwarding back the results from handlers breaks the scope of the component. The canonical example of some bad design this can lead to is `ChainHandler`: how can the caller know that there is one in the chain and that it should expect an array as a return value? More generally, how can a caller know what to expect back from a call to dispatch()? I think we should not allow such broken designs.

Instead, we should favor east-oriented design: if one needs a command bus, one would have to dispatch a proper command object - and if a result is expected back, it should be done via a setter on the dispatched command - or better, a callback set on the command object. This way we play *by the rules* of the type-system, not against.

Commits
-------

f942ffcb1b [Messenger] made dispatch() and handle() return void
2018-10-21 13:42:19 +01:00
Dariusz Ruminski
6f83d9f9a3 Revert "fixed CS"
This reverts commit d48a3776fe.
2018-10-21 01:16:31 +02:00
Fabien Bourigault
326c267de2 [Serializer] Reduce class discriminator overhead 2018-10-20 23:22:07 +02:00
Olivier Laviale
baf6f8cc34 Skip empty proxy code 2018-10-20 22:20:36 +02:00
Nicolas Grekas
915870e0a3 bug #28904 [Serializer] fix MetadataAwareNameConverter break denormalization (Britaliope)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Serializer] fix MetadataAwareNameConverter break denormalization

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

During denormalization of an object, the `normalize` function of the `MetadataAwareNormalizer` is called to find the serialized name of constructor arguments. This do not work if the constructor argument is not in the serialized representation of the object (for example given with a `default_constructor_arguments` option ).

**Checklist**
- [x] Add test to cover the bug

Commits
-------

faf8b009dc [Serializer] fix MetadataAwareNameConverter break denormalization
2018-10-20 20:21:07 +02:00
Nicolas Grekas
f942ffcb1b [Messenger] made dispatch() and handle() return void 2018-10-20 15:00:30 +02:00
Nicolas Grekas
4d757b5382 feature #28911 [Messenger] rename "envelope items" and move them in the "Stamp" namespace (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Messenger] rename "envelope items" and move them in the "Stamp" namespace

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

Right now, envelope items are scattered in different sub namespaces and use the "Configuration" suffix.
This makes them hard to discover.
This PR creates a new `Stamp` namespace and moves all "envelope items" there, renaming them to use the "stamp" terminology.

From the changelog:
 * `Envelope`'s constructor and `with` method now accept `StampInterface` objects as variadic parameters
 * Renamed `EnvelopeItemInterface` to `StampInterface`
 * Renamed and moved `ReceivedMessage`, `ValidationConfiguration` and `SerializerConfiguration` in the `Stamp` namespace
 * Removed the `WrapIntoReceivedMessage` (it's untested and unused)

Commits
-------

0ad2cb906d [Messenger] rename "envelope items" and move them in the "Stamp" namespace
2018-10-20 14:56:47 +02:00
Albert Casademont
7b256a985d
[Security] Fix "exclude-from-classmap"
The "/Tests/" directory doesn't exist in the Security Component, tests are located within the Security components folders and none of the tests were being excluded in an --classmap-authoritative dump of the autoload.
2018-10-19 23:57:12 +02:00
Grégoire Pineau
f99786314e [Security] Removed unsed trait import 2018-10-19 14:22:12 +02:00
Fabien Potencier
0acf9e17d4 minor #28916 [Form] Fix @method annotation (ro0NL)
This PR was squashed before being merged into the 4.2-dev branch (closes #28916).

Discussion
----------

[Form] Fix @method annotation

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #...   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Same as #28915 for 4.2 (these are the only occurrences for interfaces)

Actually provides a use case for https://github.com/symfony/symfony/pull/28902#issuecomment-430904459 🎉

Commits
-------

13f0db718e [Form] Fix @method annotation
2018-10-19 12:21:50 +02:00
Roland Franssen
13f0db718e [Form] Fix @method annotation 2018-10-19 12:21:43 +02:00
Roland Franssen
0d7a961338 [Config] Fix @method annotation 2018-10-19 12:20:44 +02:00
Maxime Steinhausser
4e89a4bc03 [Cache] Fix outdated CHANGELOG line 2018-10-19 10:25:57 +02:00
Nicolas Grekas
0ad2cb906d [Messenger] rename "envelope items" and move them in the "Stamp" namespace 2018-10-18 15:00:56 +02:00
Chris Wilkinson
e9cdabe570 Use intersection type when referring to ParentNodeDefinitionInterface 2018-10-18 11:40:53 +01:00
Nicolas Grekas
2a2914e208 [Serializer] Improve perf a bit by not using a signaling exception when not needed 2018-10-17 20:52:05 +02:00
Fabien Potencier
8322494a47 bug #28801 Convert InsufficientAuthenticationException to HttpException with 401 status code (vincentchalamon)
This PR was merged into the 2.8 branch.

Discussion
----------

Convert InsufficientAuthenticationException to HttpException with 401 status code

| Q             | A
| ------------- | ---
| Branch?       | 2.8
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed ticket | #8467
| License       | MIT

I was trying to implement the `json_login` authentication and test it with an API Platform project. When I call a secured endpoint without authentication, an InsufficientAuthenticationException is thrown with a 500 status code instead of a 401.

After some researches with @dunglas, there is no default `entrypoint` on the security firewall. As one already exists for `form_login` in the FormLoginFactory, this component might need a default one to convert this 500 exception to a correct 401 HTTP error.

This fixes https://github.com/symfony/symfony/issues/25806#issuecomment-368461952.

Commits
-------

4503ac8e9f Convert InsufficientAuthenticationException to HttpException
2018-10-17 18:35:42 +02:00
Bruno MATEU
faf8b009dc [Serializer] fix MetadataAwareNameConverter break denormalization 2018-10-17 17:16:10 +02:00
Fabien Potencier
5145084808 bug #28840 add missing double-quotes to extra_fields output message (danielkay)
This PR was squashed before being merged into the 2.8 branch (closes #28840).

Discussion
----------

add missing double-quotes to extra_fields output message

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

When using the extra_fields_message option on FormTypes to include the extra_fields items in the message, the output included some superfluous (or, perhaps, missing?) quotes. This resulted in some strange output: `This form should not contain extra fields: notes1\", \"notes2\", \"notes3`.

This PR removes the quotes and instead implodes the extra_fields array using merely ', ' as the glue, resulting in the output: `This form should not contain extra fields: notes1, notes2, notes3`.

Commits
-------

9e7414159c add missing double-quotes to extra_fields output message
2018-10-17 15:52:59 +02:00
Daniel Kay
9e7414159c add missing double-quotes to extra_fields output message 2018-10-17 15:52:52 +02:00
Fabien Potencier
dd432c4f1e minor #28901 [HttpKernel] Introduce KernelInterface::getProjectDir() (ro0NL)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[HttpKernel] Introduce KernelInterface::getProjectDir()

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | not yet
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | https://github.com/symfony/symfony/pull/28897#issuecomment-430523336
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Removes the last call to getParameter('kernel.project_dir') during runtime in core. Yay :)

cc @fabpot @nicolas-grekas

Commits
-------

b046f414e7 [HttpKernel] Introduce KernelInterface::getProjectDir()
2018-10-17 11:43:15 +02:00
Roland Franssen
b046f414e7 [HttpKernel] Introduce KernelInterface::getProjectDir()
This reverts commit 704867986d, reversing
changes made to 557f85d1b3.
2018-10-17 11:36:49 +02:00
Fabien Potencier
72ab16d4c9 bug #28838 [DI] Default undefined env to empty string during compile (ro0NL)
This PR was squashed before being merged into the 4.1 branch (closes #28838).

Discussion
----------

[DI] Default undefined env to empty string during compile

| Q             | A
| ------------- | ---
| Branch?       | 4.1
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #28827
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Instead of using `null` for undefined envs, use `""` instead. We already default the type to string, so actually providing a string value makes sense. During runtime it will always be string also.

Commits
-------

38a8ab92fa [DI] Default undefined env to empty string during compile
2018-10-17 09:43:06 +02:00
Roland Franssen
38a8ab92fa [DI] Default undefined env to empty string during compile 2018-10-17 09:42:53 +02:00
Mathieu Piot
42d54b73c3 Add help_attr 2018-10-17 09:30:39 +02:00
Nicolas Grekas
819f525547 [HttpKernel] fix deprecating KernelInterface::getRootDir() 2018-10-16 17:46:02 +02:00
Nicolas Grekas
4964ffc8c0 [HttpKernel] fix kernel.name deprecation 2018-10-16 14:29:39 +02:00
Fabien Potencier
0b851c6956 [HttpKernel] deprecated usage of getRootDir() and kernel.root_dir 2018-10-15 20:25:13 +02:00
Fabien Potencier
5fda7e2fb1 feature #28809 [HttpKernel] Deprecate the Kernel name (fabpot)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[HttpKernel] Deprecate the Kernel name

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | yes <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #26904
| License       | MIT
| Doc PR        | n/a

<!--
Write a short README entry for your feature/bugfix here (replace this comment block.)
This will help people understand your PR and can be used as a start of the Doc PR.
Additionally:
 - 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.
-->

Commits
-------

98ff750ee1 [HttpKernel] deprecated the Kernel name
2018-10-15 17:49:38 +02:00
Fabien Potencier
98ff750ee1 [HttpKernel] deprecated the Kernel name 2018-10-15 17:39:36 +02:00
Roland Franssen
ce95d0d33d
[HttpFoundation] Publicify new consts 2018-10-15 17:16:38 +02:00
Fabien Potencier
76f80e9153 feature #28807 [HttpFoundation] Make ResponseHeaderBag::makeDisposition static (fabpot)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[HttpFoundation] Make ResponseHeaderBag::makeDisposition static

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

<!--
Write a short README entry for your feature/bugfix here (replace this comment block.)
This will help people understand your PR and can be used as a start of the Doc PR.
Additionally:
 - 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.
-->

Commits
-------

d29b410262 [HttpFoundation] made ResponseHeaderBag::makeDisposition static
2018-10-15 16:54:25 +02:00
Fabien Potencier
d29b410262 [HttpFoundation] made ResponseHeaderBag::makeDisposition static 2018-10-15 16:53:01 +02:00
Christian Flothmann
f642355859 use constraint options instead of properties 2018-10-15 11:01:19 +02:00
Nicolas Grekas
3db3ad21d0 Merge branch '4.1'
* 4.1:
  Remove Process::escapeArgument argument type hint
  [Console] fix test using deprecated code
  [travis] build libsodium only if it's not already enabled
  Add a test case for stringifying of Process arguments
  Add a missing English translation
  [Console] Fixes multiselect choice question in interactive mode with default values
  [Validator] Add a missing Polish translation
  Allow integers as default console option value
  Setting missing default paths under BC layer
  Changed "epost-adress" to "e-postadress"
  Fix for race condition in console output stream write
  reverse transform RFC 3339 formatted dates
2018-10-14 13:50:41 -07:00
Valentin
acf8b8338a Remove Process::escapeArgument argument type hint 2018-10-14 13:48:13 -07:00
Nicolas Grekas
5bd240314c Merge branch '3.4' into 4.1
* 3.4:
  [Console] fix test using deprecated code
  [travis] build libsodium only if it's not already enabled
  Add a test case for stringifying of Process arguments
  Add a missing English translation
  [Console] Fixes multiselect choice question in interactive mode with default values
  [Validator] Add a missing Polish translation
  Allow integers as default console option value
  Setting missing default paths under BC layer
  Changed "epost-adress" to "e-postadress"
  Fix for race condition in console output stream write
  reverse transform RFC 3339 formatted dates
2018-10-14 12:02:12 -07:00
Nicolas Grekas
2caee9435f [Console] fix test using deprecated code 2018-10-14 12:00:59 -07:00
Nicolas Grekas
55978d793f minor #28864 [Process] A test case for stringifying of Process arguments (vudaltsov)
This PR was merged into the 3.4 branch.

Discussion
----------

[Process] A test case for stringifying of Process arguments

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

Checks that non-string arguments passed to Process constructor are typecasted to string

Commits
-------

0d543428ad Add a test case for stringifying of Process arguments
2018-10-14 11:39:46 -07:00
Nicolas Grekas
a5792bfe01 Merge branch '2.8' into 3.4
* 2.8:
  Add a missing English translation
  [Console] Fixes multiselect choice question in interactive mode with default values
  [Validator] Add a missing Polish translation
  Allow integers as default console option value
  Changed "epost-adress" to "e-postadress"
  Fix for race condition in console output stream write
  reverse transform RFC 3339 formatted dates
2018-10-14 11:32:13 -07:00
Nicolas Grekas
c6b288e775 bug #28712 [Form] reverse transform RFC 3339 formatted dates (xabbuh)
This PR was merged into the 2.8 branch.

Discussion
----------

[Form] reverse transform RFC 3339 formatted dates

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

Technically, dates formatted according to the HTML specifications do not
contain any timezone information. But since our DateTimeType used to
contain this information in the passed, users had configure their JS
libraries to accept (and create) dates in that format.

To not break BC we should accept these dates and silently ignore the
additional timezone information.

Commits
-------

503239f75e reverse transform RFC 3339 formatted dates
2018-10-14 11:31:00 -07:00
Nicolas Grekas
0651e7cfb4 bug #28813 Fix for race condition in console output stream write (rudolfratusinski)
This PR was merged into the 2.8 branch.

Discussion
----------

Fix for race condition in console output stream write

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

In high throughput environments writing `message` and `PHP_EOL` separately causes race condition issues, where messages might be written in order

- message
- message
- EOL
- EOL

instead of

- message
- EOL
- message
- EOL

An example below is a laravel application log tail of queue workers  (multiple app instances writing to the same log file) handled by supervisor.

Before:
![ezgif-1-77388f9210cf](https://user-images.githubusercontent.com/2752769/46792349-bec13180-cd75-11e8-8f91-92f05762f964.gif)

After:
![ezgif-1-0b839d642644](https://user-images.githubusercontent.com/2752769/46792420-e617fe80-cd75-11e8-9414-4bfc85d9c569.gif)

Commits
-------

428dea6fb1 Fix for race condition in console output stream write
2018-10-14 11:27:40 -07:00
Valentin
0d543428ad Add a test case for stringifying of Process arguments 2018-10-14 20:33:21 +03:00
Roland Franssen
647a937abc [VarDumper] Scroll into view when searching 2018-10-14 09:29:41 +02:00
Fabien Potencier
c6009a0144 [Validator] deprecate checkMX and checkHost on Email validator 2018-10-12 12:10:09 -07:00
Fabien Potencier
f0bcab5ac6 minor #28808 [HttpKernel] Add a note about env name restrictions (fabpot)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[HttpKernel] Add a note about env name restrictions

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #26884
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

<!--
Write a short README entry for your feature/bugfix here (replace this comment block.)
This will help people understand your PR and can be used as a start of the Doc PR.
Additionally:
 - 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.
-->

Commits
-------

b0f863d77e [HttpKernel] added a note about env name restrictions
2018-10-12 10:21:57 -07:00
Fabien Potencier
7d9ae2f6a6 minor #28841 Sync English translations (jakzal)
This PR was merged into the 2.8 branch.

Discussion
----------

Sync English translations

| Q             | A
| ------------- | ---
| Branch?       | 2.8
| Bug fix?      | no
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? |no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | https://github.com/symfony/symfony/pull/28828#issuecomment-429362737
| License       | MIT
| Doc PR        | -

<!--
Write a short README entry for your feature/bugfix here (replace this comment block.)
This will help people understand your PR and can be used as a start of the Doc PR.
Additionally:
 - 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.
-->

Commits
-------

bb573524cb Add a missing English translation
2018-10-12 10:17:46 -07:00
Fabien Potencier
bad48671a4 bug #27772 [Console] Fixes multiselect choice question defaults in non-interactive mode (veewee)
This PR was merged into the 2.8 branch.

Discussion
----------

[Console] Fixes multiselect choice question defaults in non-interactive mode

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

[This commit](41ffc69fa0) introduced a warning in multiselect mode:

```
PHP Notice:  Undefined index:  in /tmp/vendor/symfony/console/Helper/QuestionHelper.php on line 52
PHP Stack trace:
PHP   1. {main}() /tmp/vendor/phpro/grumphp/bin/grumphp:0
PHP   2. GrumPHP\Console\Application->run() /tmp/vendor/phpro/grumphp/bin/grumphp:31
PHP   3. GrumPHP\Console\Application->run() /tmp/vendor/phpro/grumphp/src/Console/Application.php:240
PHP   4. GrumPHP\Console\Application->doRun() /tmp/vendor/symfony/console/Application.php:145
PHP   5. GrumPHP\Console\Application->doRunCommand() /tmp/vendor/symfony/console/Application.php:262
PHP   6. GrumPHP\Console\Command\ConfigureCommand->run() /tmp/vendor/symfony/console/Application.php:904
PHP   7. GrumPHP\Console\Command\ConfigureCommand->execute() /tmp/vendor/symfony/console/Command/Command.php:251
PHP   8. GrumPHP\Console\Command\ConfigureCommand->buildConfiguration() /tmp/vendor/phpro/grumphp/src/Console/Command/ConfigureCommand.php:95
PHP   9. Symfony\Component\Console\Helper\QuestionHelper->ask() /tmp/vendor/phpro/grumphp/src/Console/Command/ConfigureCommand.php:156

Notice: Undefined index:  in /tmp/vendor/symfony/console/Helper/QuestionHelper.php on line 52
```

This PR fixes this issue by parsing the default value using the built-in validator if available. (which most likely is ...)

Commits
-------

099e265711 [Console] Fixes multiselect choice question in interactive mode with default values
2018-10-12 09:06:41 -07:00
Fabien Potencier
60aaa808c1 minor #28839 [LDAP] Revamp LDAP options with nested options definition (yceruto)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[LDAP] Revamp LDAP options with nested options definition

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

Next move after https://github.com/symfony/symfony/pull/27291 :)

This will work exactly that before, nothing change regarding behavior, BUT now we've *less code* and *intuitive definition of nested options*.

Commits
-------

a26c284d2d Revamp LDAP options with nested definition
2018-10-12 09:03:12 -07:00
Fabien Potencier
4cd71b406c feature #28833 [Intl] Blacklist invalid languages (ro0NL)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Intl] Blacklist invalid languages

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes?
| New feature?  | yes?
| BC breaks?    | no?
| Deprecations? | no
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #...   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

see https://en.wikipedia.org/wiki/ISO_639-3#Special_codes

Commits
-------

4f5404bdcb [Intl] Blacklist invalid languages
2018-10-12 09:01:53 -07:00
Yonel Ceruto
a26c284d2d Revamp LDAP options with nested definition 2018-10-12 11:49:15 -04:00
Jakub Zalas
bb573524cb
Add a missing English translation 2018-10-12 16:17:55 +01:00
Toon Verwerft
099e265711 [Console] Fixes multiselect choice question in interactive mode with default values 2018-10-12 16:17:31 +02:00
Jakub Zalas
c1314b315e [Validator] Add a missing Polish translation 2018-10-12 07:07:32 -07:00
Niels Keurentjes
064950a03f Allow integers as default console option value 2018-10-12 06:55:43 -07:00
Fabien Potencier
261c0dea91 minor #28830 'yml' is not a format and shouldn't be visible as constant from 'YamlEncoder' (kevin-biig)
This PR was merged into the 4.2-dev branch.

Discussion
----------

'yml' is not a format and shouldn't be visible as constant from 'YamlEncoder'

A little fix of my [previous PR](https://github.com/symfony/symfony/pull/28815)

This PR changes the constant visibility of the `yml` format as private.

Because as @stof [mentionned](https://github.com/symfony/symfony/pull/28815#issuecomment-428941972) `yml` isn't a format, so the constant  shoudn't be public.

Otherwise, this will be confusing while using autocomplete, you see two formats. The user can ask himself if there is a difference between `yaml` / `yml`.

No need of that :)

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

Commits
-------

674b359610 'yml' is not a format and shouldn't be visible as constant from 'YamlEncoder' class
2018-10-12 05:58:47 -07:00
Fabien Potencier
975f58f3a2 fixed typo in class name 2018-10-12 05:57:08 -07:00
Fabien Potencier
dd67a450f7 Merge branch '4.1'
* 4.1:
  Class should be case sensitive
  fixed CS
  [CS] Enable phpdoc_types_order
2018-10-12 05:56:18 -07:00
Fabien Potencier
7e0a369f73 Merge branch '3.4' into 4.1
* 3.4:
  Class should be case sensitive
  fixed CS
  [CS] Enable phpdoc_types_order
2018-10-12 05:56:03 -07:00
Nguyen Xuan Quynh
6a0ab51f1c Class should be case sensitive 2018-10-12 05:54:24 -07:00
Roland Franssen
4f5404bdcb [Intl] Blacklist invalid languages 2018-10-12 12:51:09 +02:00
Kevin Grenier
674b359610 'yml' is not a format and shouldn't be visible as constant from 'YamlEncoder' class 2018-10-12 10:13:44 +02:00
Christian Flothmann
91f6e69334 fix typo 2018-10-12 09:26:31 +02:00
Fabien Potencier
b399527ba1 feature #28815 YamlEncoder handle yml format (kevin-biig)
This PR was merged into the 4.2-dev branch.

Discussion
----------

YamlEncoder handle yml format

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

`Symfony\Component\Serializer\Encoder\YamlEncoder` now handle the `yml` format too

```
use Symfony\Component\Serializer\Serializer;
use Symfony\Component\Serializer\Encoder\YamlEncoder;

$serializer = new Serializer([], [new YamlEncoder()]);
$content = file_get_contents(__DIR__ . '/test.yml');
$data = $serializer->decode($content, YamlEncoder::ALTERNATIVE_FORMAT);
```

Let me know if something is wrong for you

Commits
-------

d8640f965b YamlEncoder handle yml extension
2018-10-11 11:09:58 -07:00
Fabien Potencier
4a4fda5679 feature #27742 [Process] Add feature "wait until callback" to process class (Nek-)
This PR was squashed before being merged into the 4.2-dev branch (closes #27742).

Discussion
----------

[Process] Add feature "wait until callback" to process class

I often see code like the following:

```php
$process->start();
// wait for the process to be ready
sleep(3);
```

Many times in tests, sometimes in other places. There is a problem with this kind of code because if for any reason the process starts slower than the usual... Your code may fail after that. Also if it's faster, you're losing time for waiting.

So here is my proposal:

```php
$process->start();
$process->waitUntil(function($type, $output) {
    // check the output and return true to stop waiting when you got what you wait
});
```

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

Commits
-------

27eaf83b63 [Process] Add feature \"wait until callback\" to process class
2018-10-11 10:22:46 -07:00
Maxime Veber
27eaf83b63 [Process] Add feature \"wait until callback\" to process class 2018-10-11 10:22:38 -07:00
Tobias Nyholm
91e36579b4 Changed "epost-adress" to "e-postadress" 2018-10-11 10:17:16 -07:00
Kevin Grenier
d8640f965b YamlEncoder handle yml extension 2018-10-11 15:09:10 +02:00
Fabien Potencier
80670fc0a7 Merge branch '2.8' into 3.4
* 2.8:
  fixed CS
  [CS] Enable phpdoc_types_order
2018-10-11 06:05:17 -07:00
Fabien Potencier
d48a3776fe fixed CS 2018-10-11 04:32:54 -07:00
Fabien Potencier
7cb823a5b6 minor #28811 Remove usage of sf2 when possible (fabpot)
This PR was merged into the 4.2-dev branch.

Discussion
----------

Remove usage of sf2 when possible

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

I've not removed all `sf2` occurrences as I've kept the ones that would introduce a BC break.

Commits
-------

8406ee86a9 removed usage of sf2 when possible
2018-10-11 03:53:47 -07:00
Rudolf Ratusiński
428dea6fb1 Fix for race condition in console output stream write 2018-10-11 17:13:12 +08:00
Fabien Potencier
8406ee86a9 removed usage of sf2 when possible 2018-10-10 12:30:04 -07:00
Fabien Potencier
620094a12c feature #28713 [Cache] added support for connecting to Redis clusters via DSN (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Cache] added support for connecting to Redis clusters via DSN

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

Replaces #28300 and #28175

This PR allows configuring a cluster of Redis servers using all available options of either the phpredis extension or the Predis package:
- the `redis_cluster=0/1` boolean option configures whether the client should use the Redis cluster protocol;
- several hosts can be provided using a syntax very similar to #28598, enabling consistent hashing distribution of keys;
- `failover=error/distribute/slaves` can be set to direct reads at slave servers;
- extra options are passed as is to the driver (e.g. `profile=2.8`)
- Predis per-server settings are also possible, using e.g. `host[localhost][alias]=foo` in the query string, or `host[localhost]=alias%3Dfoo` (ie PHP query arrays or urlencoded key/value pairs)

Commits
-------

a42e8774d6 [Cache] added support for connecting to Redis clusters via DSN
2018-10-10 12:22:21 -07:00
Fabien Potencier
b0f863d77e [HttpKernel] added a note about env name restrictions 2018-10-10 09:56:03 -07:00
Christian Flothmann
493c13a9fb Merge branch '4.1'
* 4.1:
  fix merge
2018-10-10 16:58:57 +02:00
Christian Flothmann
61cf143727 fix merge 2018-10-10 16:49:00 +02:00
Nicolas Grekas
8848a1aa30 Merge branch '4.1'
* 4.1: (27 commits)
  Added the Code of Conduct file
  do not override custom access decision configs
  [Security] Do not deauthenticate user when the first refreshed user has changed
  fix a return type hint
  invalidate stale commits for PRs too
  add missing cache prefix seed attribute to XSD
  fix command description
  Fix class documentation
  [Validator] Add a missing translation
  [FrameworkBundle] Fix 3.4 tests
  [DI] fix dumping inline services again
  Rename consumer to receiver
  Register messenger before the profiler
  Fix phpdocs
  [EventDispatcher] Remove template method in test case
  Added LB translation for #27993 (UUID validator message translation)
  Replace deprecated validateValue with validate
  [FWBundle] Automatically enable PropertyInfo when using Flex
  [Process] fix locking of pipe files on Windows
  Correct PHPDoc type for float ttl
  ...
2018-10-10 06:54:27 -07:00
Nicolas Grekas
d9c9e0cf52 Merge branch '3.4' into 4.1
* 3.4: (21 commits)
  Added the Code of Conduct file
  do not override custom access decision configs
  [Security] Do not deauthenticate user when the first refreshed user has changed
  invalidate stale commits for PRs too
  add missing cache prefix seed attribute to XSD
  fix command description
  Fix class documentation
  [Validator] Add a missing translation
  [FrameworkBundle] Fix 3.4 tests
  [DI] fix dumping inline services again
  Fix phpdocs
  [EventDispatcher] Remove template method in test case
  Added LB translation for #27993 (UUID validator message translation)
  Replace deprecated validateValue with validate
  [FWBundle] Automatically enable PropertyInfo when using Flex
  [Process] fix locking of pipe files on Windows
  Correct PHPDoc type for float ttl
  bumped Symfony version to 3.4.18
  updated VERSION for 3.4.17
  updated CHANGELOG for 3.4.17
  ...
2018-10-10 06:52:42 -07:00
Nicolas Grekas
a42e8774d6 [Cache] added support for connecting to Redis clusters via DSN 2018-10-10 06:45:03 -07:00
Nicolas Grekas
68e54f01cc bug #28760 [DI] fix dumping inline services again (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] fix dumping inline services again

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

The main fix is in `PhpDumper::addInlineService()`
Fixes a few other glitches found meanwhile.

Commits
-------

a854b0a01c [DI] fix dumping inline services again
2018-10-10 06:42:04 -07:00
Nicolas Grekas
af2938eac4 Merge branch '2.8' into 3.4
* 2.8:
  Added the Code of Conduct file
  [Process] fix locking of pipe files on Windows
  fix multi-digit seconds fraction handling
2018-10-10 06:41:17 -07:00
Fabien Potencier
9a37ba4ab1 bug #28805 Revert "feature #27549 [Cache] Unconditionally use PhpFilesAdapter for system pools" (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

Revert "feature #27549 [Cache] Unconditionally use PhpFilesAdapter for system pools"

This reverts commit d4f5d46b13, reversing
changes made to 7e3b7b0b50.

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

Reading #28800, I've just realized that #27549 breaks using system caches with read-only filesystem.
Using ApcuAdapter makes system caches compatible with read-only filesystems.
Note that this affects only non-warmed up pools, as the warmed-up ones use a faster `PhpArrayAdapter` in front.

Commits
-------

dbc1230735 Revert "feature #27549 [Cache] Unconditionally use PhpFilesAdapter for system pools (nicolas-grekas)"
2018-10-10 06:31:32 -07:00
Nicolas Grekas
4d70a0b7d4 [Finder] fix reverse sorting custom-ordering functions 2018-10-10 06:30:17 -07:00
Nicolas Grekas
dbc1230735 Revert "feature #27549 [Cache] Unconditionally use PhpFilesAdapter for system pools (nicolas-grekas)"
This reverts commit d4f5d46b13, reversing
changes made to 7e3b7b0b50.
2018-10-10 06:18:46 -07:00
Fabien Potencier
0ea1adf3cc minor #28798 [Routing] simplify PhpMatcherDumper by splitting code logic from route data (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Routing] simplify PhpMatcherDumper by splitting code logic from route data

| 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 splits all logic that is currently dumped into the matcher in a dedicated trait.
This makes the code easier to maintain and prepares for the next step (making the dumper compile routes as a set of PHP arrays instead of code.)

This diff is huge because affected fixtures are also huge, but it's negative, removing 1200 lines!

Commits
-------

22186c7045 [Routing] simplify PhpMatcherDumper by splitting code logic from route data
2018-10-10 05:51:58 -07:00
Vincent Chalamon
4503ac8e9f
Convert InsufficientAuthenticationException to HttpException 2018-10-10 14:45:47 +02:00
Fabien Potencier
722c8162c9 feature #26261 [Validator] Improvement: provide file basename for constr. violation messages in FileValidator. (TheCelavi)
This PR was squashed before being merged into the 4.2-dev branch (closes #26261).

Discussion
----------

[Validator] Improvement: provide file basename for constr. violation messages in FileValidator.

| Q             | A
| ------------- | ---
| Branch?       | 3.4 <!-- see below -->
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | no
| License       | MIT
| Doc PR        | N/A

`\Symfony\Component\Validator\Constraints\FileValidator` provides absolute path to file on server when user, per example, uploads empty file, too large file, of wrong mime type, etc...

Absolute path to file on server does not have value to the end user, on top of that, exposing it can be a security issue - end user should not be aware of server filesystem.

Basename of file, however, has value (per example: MyAwesomeSheet.xlsx, MyCV.doc, etc..) - if something is wrong with file upload (size, mime, etc...).

If basename is exposed, we can construct messages like: "Your file 'MyCV.doc' is not allowed for upload due to....whatever"...

This PR provides basename of file so end user of `\Symfony\Component\Validator\Constraints\FileValidator` can construct error messages of higher value for end user.

Commits
-------

a77abadf06 [Validator] Improvement: provide file basename for constr. violation messages in FileValidator.
2018-10-10 05:29:04 -07:00
Nikola Svitlica a.k.a. TheCelavi
a77abadf06 [Validator] Improvement: provide file basename for constr. violation messages in FileValidator. 2018-10-10 05:28:53 -07:00
Nicolas Grekas
ce861d1861 [Finder] make reverse sorting a bit more generic 2018-10-10 05:18:16 -07:00
Nicolas Grekas
22186c7045 [Routing] simplify PhpMatcherDumper by splitting code logic from route data 2018-10-10 04:44:04 -07:00
Fabien Potencier
631d718ae8 feature #26324 [Form] allow additional http methods in form configuration (alekitto)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Form] allow additional http methods in form configuration

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

In order to allow HTTP methods other than GET, PUT, POST, DELETE and PATCH, the `allowed_methods` option under `framework.form` configuration has been added.
This configuration option adds the specified methods to the `FormConfigBuilder` whitelist, allowing that methods be used in form configuration via `setMethod` or the `method` option.

The use-case, that has been discussed in #26287, required the usage of custom HTTP method for describing a resource in an API application.

Commits
-------

27d228c3ee [Form] remove restriction on allowed http methods
2018-10-10 04:39:51 -07:00
Frederic Godfrin
27b673cbdd [Filesystem] Fix mirroring a directory with a relative path and a custom iterator 2018-10-10 04:36:40 -07:00
Fabien Potencier
c01359e00e removed unneeded comments 2018-10-10 04:12:11 -07:00
Fabien Potencier
d3fac8600c feature #27291 [OptionsResolver] Added support for nesting options definition (yceruto)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[OptionsResolver] Added support for nesting options definition

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

I'd like to propose an alternative to #27251 and #18134 with a different approach.

It would allow you to create a nested options system with required options, validation (type, value),
normalization and more.

<details>
 <summary><strong>Short documentation</strong></summary>

**To define a nested option, you can pass a closure as the default value of the option with an `OptionsResolver` argument:**
```php
$resolver
    ->defaults([
        'connection' => 'default',
        'database' => function (OptionsResolver $resolver) {
            $resolver
                ->setRequired(['dbname', 'host', ...])
                ->setDefaults([
                    'driver' => 'pdo_sqlite',
                    'port' => function (Options $options) {
                        return 'pdo_mysql' === $options['driver'] ? 3306 : null,
                    },
                    'logging' => true,
                ])
                ->setAllowedValues('driver', ['pdo_sqlite', 'pdo_mysql'])
                ->setAllowedTypes('port', 'int')
                ->setAllowedTypes('logging', 'bool')
                // ...
        },
    ]);

$resolver->resolve(array(
    'database' => array(
        'dbname' => 'demo',
        'host' => 'localhost',
        'driver' => 'pdo_mysql',
    ),
));

// returns: array(
//    'connection' => 'default',
//    'database' => array(
//        'dbname' => 'demo',
//        'host' => 'localhost',
//        'driver' => 'pdo_mysql',
//        'port' => 3306,
//        'logging' => true,
//    ),
//)
```
Based on this instance, you can define the options under ``database`` and its desired default
value.

**If the default value of a child option depend on another option defined in parent level,
adds a second ``Options`` argument to the closure:**
```php
$resolver
    ->defaults([
        'profiling' => false,
        'database' => function (OptionsResolver $resolver, Options $parent) {
            $resolver
                ->setDefault('logging', $parent['profiling'])
                ->setAllowedTypes('logging', 'bool');
        },
    ])
;
```
**Access to nested options from lazy or normalize functions in parent level:**
```php
$resolver
    ->defaults([
        'version' => function (Options $options) {
            return $options['database']['server_version'];
        },
        'database' => function (OptionsResolver $resolver) {
            $resolver
                ->setDefault('server_version', 3.15)
                ->setAllowedTypes('server_version', 'numeric')
                // ...
        },
    ])
;
```
As condition, for nested options you must to pass an array of values to resolve it on runtime, otherwise an exception will be thrown:
```php
$resolver->resolve(); // OK
$resolver->resolve(['database' => []]); // OK
$resolver->resolve(['database' => null); // KO (Exception!)
```
</details>

---

Demo app https://github.com/yceruto/nested-optionsresolver-demo

Commits
-------

d04e40be5a Added support for nested options definition
2018-10-10 04:11:23 -07:00
Fabien Potencier
ea0b8071c9 feature #27261 [VarDumper] Allow to use a light theme out of the box (ogizanagi)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[VarDumper] Allow to use a light theme out of the box

| Q             | A
| ------------- | ---
| Branch?       | master <!-- see below -->
| Bug fix?      | no
| New feature?  | yes <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | N/A   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

Wouldn't it be nice to provide this light theme out of the box? (the one we use in the profiler)

![capture d ecran 2018-05-14 a 16 50 55](https://user-images.githubusercontent.com/2211145/40004942-23b4138c-5797-11e8-8c57-0b38744ffdc2.png)

Commits
-------

c705b82563 [VarDumper] Allow to use a light theme out of the box
2018-10-10 04:10:26 -07:00
Fabien Potencier
bc816da9f6 feature #27967 [Finder] Added a way to inverse a previous sorting (lyrixx)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Finder] Added a way to inverse a previous sorting

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

---

Sometimes, it's useful to inverse the previous sorting.
For exemple when you want to display the most recent uploaded files

Commits
-------

3cd0dcaaee [Finder] Added a way to inverse a previous sorting
2018-10-10 03:35:59 -07:00
Fabien Potencier
331a24eb1b feature #28061 [Security] add port in access_control (roukmoute)
This PR was squashed before being merged into the 4.2-dev branch (closes #28061).

Discussion
----------

[Security] add port in access_control

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

Add port in access_control

__Please Squash this P.R.__

Commits
-------

6413dcbe75 [Security] add port in access_control
2018-10-10 03:31:58 -07:00
Mathias STRASSER
6413dcbe75 [Security] add port in access_control 2018-10-10 03:31:51 -07:00
Fabien Potencier
dce8f08eac feature #28476 Added different protocols to be allowed as asset base_url (alexander-schranz)
This PR was merged into the 4.2-dev branch.

Discussion
----------

Added different protocols to be allowed as asset base_url

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

In some cases you want to use the `file://` as base_url when you are for example generating pdf and want to avoid network requests to improve the pdf generation performance:

```yaml
framework:
    assets:
        packages:
            pdf:
                base_url: "file://%kernel.project_dir%/public"
```

usage:

```twig
{{ asset('image.jpg', 'pdf' }}
```

Commits
-------

2e21834b71 added different protocols to be allowed as asset base_urls
2018-10-10 03:02:29 -07:00
Fabien Potencier
9fdc64b479 bug #28689 [Process] fix locking of pipe files on Windows (nicolas-grekas)
This PR was merged into the 2.8 branch.

Discussion
----------

[Process] fix locking of pipe files on Windows

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

Commits
-------

d64bd3b181 [Process] fix locking of pipe files on Windows
2018-10-10 02:50:01 -07:00
Fabien Potencier
bc43155f3f feature #27770 [FrameworkBundle] Moving Cache-related CompilerPass to Cache component (Korbeil)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[FrameworkBundle] Moving Cache-related CompilerPass to Cache component

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

Hi, first PR here 🎉

This is related to #27479 and a first work to move Cache-related CompilerPass out of `FrameworkBundle`, it allows to decouple part of the FrameworkBundle configuration classes.

Since we didn't choosed a fixed directory organization to manage theses, I actually did same as in Bundles and used DependencyInjection folder. If we do choose to follow my [last comment directory organization proposal](https://github.com/symfony/symfony/issues/27479#issuecomment-401307685), I'll move theses CompilerPass to `Framework/DependencyInjection/Compiler` directory (nothing hard here).

Thanks to @DanieleGBX that helped me checking this PR and gave me some good advices !

Here is a list of all CompilerPass I moved, with related component (I also moved related tests when they were present):
- **Cache** - CacheCollectorPass
- **Cache** - CachePoolClearerPass
- **Cache** - CachePoolPass
- **Cache** - CachePoolPrunerPass

Commits
-------

53e7040829 moving Cache-related compiler pass from FrameworkBundle to Cache component
2018-10-10 02:39:24 -07:00
Fabien Potencier
270f496c0c bug #28704 [Form] fix multi-digit seconds fraction handling (xabbuh)
This PR was merged into the 2.8 branch.

Discussion
----------

[Form] fix multi-digit seconds fraction handling

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

Commits
-------

7b920c1ec5 fix multi-digit seconds fraction handling
2018-10-10 02:33:33 -07:00
Fabien Potencier
86a9e4a381 Merge branch '2.8' into 3.4
* 2.8:
  Fix class documentation
  [Validator] Add a missing translation
  Fix phpdocs
  [EventDispatcher] Remove template method in test case
  Added LB translation for #27993 (UUID validator message translation)
  Replace deprecated validateValue with validate
2018-10-10 02:28:31 -07:00
Fabien Potencier
003499d17a feature #28738 [OptionsResolver] Passing Options argument to deprecation closure (yceruto)
This PR was squashed before being merged into the 4.2-dev branch (closes #28738).

Discussion
----------

[OptionsResolver] Passing Options argument to deprecation closure

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

As spotted here https://github.com/symfony/symfony/pull/28721, we sometimes need more advanced cases, where the deprecation of the value depends on another option:
```php
$resolver->setDeprecated('date_format', function (Options $options, $dateFormat) {
    if (null !== $options['date_format'] && 'single_text' === $options['widget']) {
         return sprintf('Using the "date_format" option of the %s when the "widget" option is set to "single_text" is deprecated since Symfony 4.2.', self::class);
    }

    return '';
});
```
There is still a decision to make:
> We're in time to change the arguments position (Options $options, $value) to be consistent with other closure signatures.

WDYT?

Commits
-------

29360510db [OptionsResolver] Passing Options argument to deprecation closure
2018-10-10 02:26:31 -07:00
Yonel Ceruto
29360510db [OptionsResolver] Passing Options argument to deprecation closure 2018-10-10 02:26:20 -07:00
Fabien Potencier
51f39b9999 feature #28718 [Cache] add CacheInterface::delete() + improve CacheTrait (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Cache] add CacheInterface::delete() + improve CacheTrait

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

I've been hesitating a lot on this topic, but I think we should add a `delete()` method to `CacheInterface`.
Deleting is a very common invalidation strategy and invalidating by passing `$beta=INF` to `get()` has the drawback of requiring a fetch+unserialize+save-with-past-expiration. That's complexity that a delete removes.

This PR fixes an issue found meanwhile on `get()`: passing an `ItemInterface` to its callback makes it harder than required to implement on top of PSR-6. Let's pass a `CacheItemInterface`.

Lastly, the early expiration logic can be moved from the component to the trait shipped on contracts.

Here we are for all these steps.

Commits
-------

c6cf690b2f [Cache] add CacheInterface::delete() + improve CacheTrait
2018-10-10 02:20:36 -07:00
Fabien Potencier
52b7239154 feature #24530 [Form] simplify the form type extension registration (xabbuh)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Form] simplify the form type extension registration

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

Commits
-------

6a1d4c5db4 simplify the form type extension registration
2018-10-10 02:19:38 -07:00
Fabien Potencier
75eb858331 minor #28728 [EventDispatcher] Remove template method in test case (samnela)
This PR was merged into the 2.8 branch.

Discussion
----------

[EventDispatcher] Remove template method in test case

| Q             | A
| ------------- | ---
| Branch?       | 2.8 <!-- see below -->
| Bug fix?      | no
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | no   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | no <!-- required for new features -->

<!--
Write a short README entry for your feature/bugfix here (replace this comment block.)
This will help people understand your PR and can be used as a start of the Doc PR.
Additionally:
 - 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.
-->

Commits
-------

545a8eef05 [EventDispatcher] Remove template method in test case
2018-10-10 02:11:00 -07:00
Fabien Potencier
6a4c8b9f27 minor #28753 [DI] minor optim for dumped container (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[DI] minor optim for dumped container

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

Spotted while reviewing a real-world dumped container.

Commits
-------

c1863e3a7a [DI] minor optim for dumped container
2018-10-10 01:58:35 -07:00
Alessandro Chitolina
27d228c3ee
[Form] remove restriction on allowed http methods 2018-10-10 10:57:08 +02:00
Robin Chalas
2f0e5d7a83 bug #28072 [Security] Do not deauthenticate user when the first refreshed user has changed (gpekz)
This PR was squashed before being merged into the 3.4 branch (closes #28072).

Discussion
----------

[Security] Do not deauthenticate user when the first refreshed user has changed

| 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        |

Currently the token is deauthenticated when the first refreshed user has changed. In theory, a second user provider could find a user that is the same than the user stored in the token.

Also, the deauthentication is currently affected by the order of the user providers in the security.yaml and IMHO it does not make sense.

Commits
-------

95dce67 [Security] Do not deauthenticate user when the first refreshed user has changed
2018-10-10 10:05:32 +02:00
Geoffrey Pécro
95dce67629 [Security] Do not deauthenticate user when the first refreshed user has changed 2018-10-10 10:05:21 +02:00
Christian Flothmann
095b9f3a30 fix a return type hint 2018-10-09 15:30:13 +02:00
Nicolas Grekas
eb59771ce4 minor cs fix 2018-10-08 18:23:26 -07:00
Christian Flothmann
6a1d4c5db4 simplify the form type extension registration 2018-10-08 23:29:09 +02:00
Fabien Potencier
df1dcee93d minor #28770 Fix class documentation (luxifer)
This PR was merged into the 2.8 branch.

Discussion
----------

Fix class documentation

| 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        |

The phpdoc references the PHP flush function, neither a method of this class nor its parent.

Commits
-------

5a51bb24dc Fix class documentation
2018-10-08 15:39:07 +02:00
Florent Viel
5a51bb24dc
Fix class documentation
The phpdoc references the PHP flush function, neither a method of this class nor its parent.
2018-10-08 15:32:18 +02:00
Jakub Zalas
9d70e22794
[Validator] Add a missing translation 2018-10-08 13:49:05 +01:00
Maxime Steinhausser
c705b82563 [VarDumper] Allow to use a light theme out of the box 2018-10-08 12:50:41 +02:00
Nicolas Grekas
a854b0a01c [DI] fix dumping inline services again 2018-10-08 07:30:32 +02:00
Paul Le Corre
da9030f68a Rename consumer to receiver 2018-10-08 07:06:43 +02:00
Nicolas Grekas
c1863e3a7a [DI] minor optim for dumped container 2018-10-06 20:06:14 +02:00
Fabien Potencier
cbe2895174 minor #28717 [Messenger] Fix middleware docblocks (pamil)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Messenger] Fix middleware docblocks

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

<!--
Write a short README entry for your feature/bugfix here (replace this comment block.)
This will help people understand your PR and can be used as a start of the Doc PR.
Additionally:
 - 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.
-->

Commits
-------

f06c0c464a [Messenger] Fix middleware docblocks
2018-10-06 19:31:54 +02:00
Nicolas Grekas
dc5f3bfff7 Make trans + %count% parameter resolve plurals 2018-10-06 18:22:22 +02:00
Fabien Potencier
9c555c14ac minor #28742 Added LB translation for #27993 (UUID validator message translation) (mweimerskirch)
This PR was merged into the 2.8 branch.

Discussion
----------

Added LB translation for #27993 (UUID validator message translation)

| Q             | A
| ------------- | ---
| Branch?       | 2.8 (#27993 also targeted 2.8)
| Bug fix?      | n/a
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #27993
| License       | MIT

Commits
-------

d3a43e0297 Added LB translation for #27993 (UUID validator message translation)
2018-10-06 16:55:41 +02:00
Nicolas Grekas
c6cf690b2f [Cache] add CacheInterface::delete() + improve CacheTrait 2018-10-06 16:52:09 +02:00
Fabien Potencier
bda0fe8f5d minor #28739 [Validator][minor] Fixed method in phpDoc (vudaltsov)
This PR was merged into the 2.8 branch.

Discussion
----------

[Validator][minor] Fixed method in phpDoc

| 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        |

`ValidatorInterface` doesn't have a `validateValue` method, `validate` should be used.

Commits
-------

b0253e58ea Replace deprecated validateValue with validate
2018-10-06 15:13:19 +02:00
Nyholm
d870a850bd [Translator] Deprecated transChoice and moved it away from contracts 2018-10-06 09:58:31 +02:00
mschop
7196e49f7e Fix phpdocs
See https://github.com/phan/phan/issues/2025 for explaination
2018-10-06 09:38:00 +02:00
Samuel NELA
545a8eef05 [EventDispatcher] Remove template method in test case 2018-10-05 22:19:55 +02:00
mweimerskirch
d3a43e0297
Added LB translation for #27993 (UUID validator message translation) 2018-10-05 17:41:17 +02:00
Valentin Udaltsov
b0253e58ea
Replace deprecated validateValue with validate 2018-10-05 17:13:57 +03:00
Fabien Bourigault
d1d1ceb38e
[Serialized] allow configuring the serialized name of properties through metadata 2018-10-05 09:43:51 +02:00
Nicolas Grekas
d64bd3b181 [Process] fix locking of pipe files on Windows 2018-10-05 09:35:28 +02:00
Christian Flothmann
503239f75e reverse transform RFC 3339 formatted dates
Technically, dates formatted according to the HTML specifications do not
contain any timezone information. But since our DateTimeType used to
contain this information in the passed, users had configure their JS
libraries to accept (and create) dates in that format.

To not break BC we should accept these dates and silently ignore the
additional timezone information.
2018-10-04 12:00:08 +02:00
Sullivan SENECHAL
b662e7eaf2
Correct PHPDoc type for float ttl
It can be null as the Lock instance accepts it.
2018-10-04 10:48:17 +02:00
Kévin Dunglas
5a0cad27ca
feature #28669 [Serializer] Object class resolver (alanpoulain)
This PR was squashed before being merged into the 4.2-dev branch (closes #28669).

Discussion
----------

[Serializer] Object class resolver

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

When normalizing an object, it could be useful to use a custom method to resolve the class name of it instead of using `get_class`.
For instance, Doctrine is using proxy classes for lazy-loading and we usually want the real class and not the proxied one.
That's why we are using this trait in API Platform: https://github.com/api-platform/core/blob/master/src/Util/ClassInfoTrait.php
With this feature, we could solve an issue in API Platform with the JSON-LD normalizer when the eager fetching is disabled.

Commits
-------

18d21439e0 [Serializer] Object class resolver
2018-10-03 22:34:38 +02:00
Alan Poulain
18d21439e0
[Serializer] Object class resolver 2018-10-03 22:34:30 +02:00
Kamil Kokot
f06c0c464a
[Messenger] Fix middleware docblocks 2018-10-03 21:51:11 +02:00
Fabien Potencier
0e174c4530 bumped Symfony version to 4.1.7 2018-10-03 15:29:21 +02:00
Fabien Potencier
144bc350b6 updated VERSION for 4.1.6 2018-10-03 14:53:38 +02:00
Fabien Potencier
155fab6e6f bumped Symfony version to 3.4.18 2018-10-03 14:49:59 +02:00
Fabien Potencier
bf23505b92 updated VERSION for 3.4.17 2018-10-03 14:03:34 +02:00
Christian Flothmann
7b920c1ec5 fix multi-digit seconds fraction handling 2018-10-03 13:47:42 +02:00
Nicolas Grekas
0f653d8c68 Merge branch '4.1'
* 4.1:
  [Finder] fixed root directory access for ftp/sftp wrapper
  [Console] Fix clearing sections containing questions
  [FrameworkBundle] dont suggest hidden services in debug:container and debug:autow commands
  [FWBundle] Throw if PropertyInfo is enabled, but the component isn't installed
  Remove redundant path check
2018-10-03 10:52:36 +02:00
Fabien Potencier
7a2a4d94bf Merge branch '3.4' into 4.1
* 3.4:
  Remove redundant path check
2018-10-03 10:48:45 +02:00
Fabien Potencier
ef2f66b28f Merge branch '2.8' into 3.4
* 2.8:
  Remove redundant path check
2018-10-03 10:48:18 +02:00
Fabien Potencier
c48ee0be1e Merge branch '3.4' into 4.1
* 3.4:
  [Finder] fixed root directory access for ftp/sftp wrapper
  [FWBundle] Throw if PropertyInfo is enabled, but the component isn't installed
2018-10-03 10:47:56 +02:00
Fabien Potencier
636eb9e551 bug #28604 [Finder] fixed root directory access for ftp/sftp wrapper (DerDu)
This PR was squashed before being merged into the 3.4 branch (closes #28604).

Discussion
----------

[Finder] fixed root directory access for ftp/sftp wrapper

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

This fixes a flaw introduced in 3.4.7 by #26763

In order to access the root folder with ftp wrapper, there MUST BE a slash present.
- Currently: from 3.4.7 on it just ```rtrim``` all seperators (```/```, ```\```) from directories
- Now: IF the directory is a (s)ftp:// wrapper (```#^s?ftp://#```) this fix just adds a slash (```/```) again

Commits
-------

9630a38d67 [Finder] fixed root directory access for ftp/sftp wrapper
2018-10-03 10:46:53 +02:00
Gerd Christian Kunze
9630a38d67 [Finder] fixed root directory access for ftp/sftp wrapper 2018-10-03 10:46:40 +02:00
Fabien Potencier
b1f462f3e9 bug #28638 [Console] Fix clearing sections containing questions (chalasr)
This PR was merged into the 4.1 branch.

Discussion
----------

[Console] Fix clearing sections containing questions

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

Given:
```php
$section = $output->section();
$question = "What's your name?";
$name = (new QuestionHelper())->ask($input, $section, new Question($question));
$section->clear();
$section->writeln("$question (<info>$name</info>)");
```

Before:
![](https://i.imgur.com/nJdKXAo.gif)

After:
![](https://i.imgur.com/WdMtKvV.gif)

Commits
-------

81ec57d7ce [Console] Fix clearing sections containing questions
2018-10-03 10:15:46 +02:00
Fabien Potencier
7cc7c716ac feature #28693 [Security] Deprecate simple_preauth and simple_form in favor of Guard (chalasr)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Security] Deprecate simple_preauth and simple_form in favor of Guard

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

Commits
-------

5093b9fb47 [Security] Deprecate simple_preauth and simple_form in favor of Guard
2018-10-03 10:08:33 +02:00
Samuel ROZE
97aab085c3 minor #28697 [Messenger] drop "handler." prefix from ContainerHandlerLocator (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Messenger] drop "handler." prefix from ContainerHandlerLocator

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

I fail to understand what this prefix is for. Looks like boilerplate to me, let's drop it, isn't it?
An alternative to #28621

Commits
-------

6c56e82080 [Messenger] drop "handler." prefix from ContainerHandlerLocator
2018-10-03 09:02:23 +01:00
Fabien Potencier
679f8d9c9b feature #28626 [Translation] marked getFallbackLocales() as internal (boscho87)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Translation] marked getFallbackLocales() as internal

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

Added the deprication trigger error function to getFallbackLocales in the Translation component.

(Its my first PR, please tell me if i need to change something)

Commits
-------

9d67a68816 [Translation] marked getFallbackLocales() as internal
2018-10-03 09:51:39 +02:00
Fabien Potencier
5d6473bd94 minor #28683 Remove redundant path check (colinodell)
This PR was merged into the 2.8 branch.

Discussion
----------

Remove redundant path check

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

Commit 0ec852d79f introduced this new method. As you can see, the code I'm removing always evaluates to `true` thanks to the first `if` statement in this method:

![image](https://user-images.githubusercontent.com/202034/46349212-70968a80-c61f-11e8-8360-7d6abc4d7414.png)

(I'm not sure if redundant code technically counts as a "bug", so I've assumed "yes it does" and targeted 2.8.)

Commits
-------

10795cf096 Remove redundant path check
2018-10-03 09:48:08 +02:00
Nicolas Grekas
6c56e82080 [Messenger] drop "handler." prefix from ContainerHandlerLocator 2018-10-03 09:45:32 +02:00
Nicolas Grekas
104e92206c feature #28571 [DependencyInjection] Improve ServiceLocatorTagPass service matching (codedmonkey)
This PR was squashed before being merged into the 4.2-dev branch (closes #28571).

Discussion
----------

[DependencyInjection] Improve ServiceLocatorTagPass service matching

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

Allows omitting of keys for service locator arguments (it will automatically take over the original definition alias).

Commits
-------

1c1210a3e8 [DependencyInjection] Improve ServiceLocatorTagPass service matching
2018-10-03 09:27:24 +02:00
Tim Goudriaan
1c1210a3e8 [DependencyInjection] Improve ServiceLocatorTagPass service matching 2018-10-03 09:27:17 +02:00
Robin Chalas
81ec57d7ce [Console] Fix clearing sections containing questions 2018-10-03 09:17:02 +02:00
Robin Chalas
5093b9fb47 [Security] Deprecate simple_preauth and simple_form in favor of Guard 2018-10-03 09:02:12 +02:00
Simon D. Müller
9d67a68816 [Translation] marked getFallbackLocales() as internal 2018-10-03 08:26:12 +02:00
Nicolas Grekas
3b604ffe94 feature #28644 [Validator] Pre-check constraint validator dependencies (ro0NL)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Validator] Pre-check constraint validator dependencies

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | yes
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #25865
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

<!--
Write a short README entry for your feature/bugfix here (replace this comment block.)
This will help people understand your PR and can be used as a start of the Doc PR.
Additionally:
 - 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.
-->

Commits
-------

0544985934 [Validator] Pre-check constraint validator dependencies
2018-10-03 08:20:15 +02:00
Alessandro Chitolina
239a022cc0 [Cache] add RedisClusterProxy to create lazy connections to Redis clusters 2018-10-02 19:45:17 +02:00
Nicolas Grekas
944b06d7fa Merge branch '4.1'
* 4.1:
  CS fix
  [Debug] fix compat with PHP 7.3
2018-10-02 18:38:08 +02:00
Nicolas Grekas
ed6d9b9d7a Merge branch '3.4' into 4.1
* 3.4:
  CS fix
  [Debug] fix compat with PHP 7.3
2018-10-02 18:36:10 +02:00
Nicolas Grekas
83a5d0c2da Merge branch '2.8' into 3.4
* 2.8:
  CS fix
  [Debug] fix compat with PHP 7.3
2018-10-02 18:33:53 +02:00
Nicolas Grekas
aea4a62e57 CS fix 2018-10-02 18:27:16 +02:00
Nicolas Grekas
4c1f7c5877 [HttpFoundation] fix compat of tests with PHP 7.3 2018-10-02 18:23:27 +02:00
Nicolas Grekas
ab80f290fd [Debug] fix compat with PHP 7.3 2018-10-02 18:22:14 +02:00
Nicolas Grekas
c31c40d83e feature #28661 [Serializer] Add an option to skip null values (dunglas)
This PR was squashed before being merged into the 4.2-dev branch (closes #28661).

Discussion
----------

[Serializer] Add an option to skip null values

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      |no
| New feature?  | yes <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | todo

Adds a new option to not serialize `null` values:

```php
$dummy = new class {
    public $foo;
    public $bar = 'notNull';
};

$normalizer = new ObjectNormalizer();
$result = $normalizer->normalize($dummy, 'json', ['skip_null_values' => true]);
// ['bar' => 'notNull']
```

This feature is the only missing part to add [JSON Merge Patch](https://tools.ietf.org/html/rfc7386) support in [API Platform](https://api-platform.com).
It will also help supporting this RFC in all other projects using the Symfony Serializer.

Commits
-------

d3c5055f7b [Serializer] Add an option to skip null values
2018-10-02 17:09:27 +02:00
Kévin Dunglas
d3c5055f7b [Serializer] Add an option to skip null values 2018-10-02 17:09:21 +02:00
Nicolas Grekas
f34fcb66ea fix merge 2018-10-02 15:06:13 +02:00
Nicolas Grekas
a9c90ca77a Merge branch '4.1'
* 4.1: (21 commits)
  [php_cs] disable fopen_flags
  [DI] fix error in dumped container
  [CS] Remove unused variables passed to closures
  [DI] fix dumping setters before their inlined instances
  [CS] Remove empty comment
  [CS] Enforces null type hint on last position in phpDocs
  [CS] Use combined assignment operators when possible
  Fix a typo in error messages
  Don't return early as this bypasses the auto exit feature
  [Console] Add missing null to input values allowed types
  [PHPUnitBridge] Fix microtime() format
  bumped Symfony version to 4.1.6
  updated VERSION for 4.1.5
  updated CHANGELOG for 4.1.5
  bumped Symfony version to 3.4.17
  updated VERSION for 3.4.16
  updated CHANGELOG for 3.4.16
  bumped Symfony version to 2.8.47
  update CONTRIBUTORS for 2.8.46
  updated VERSION for 2.8.46
  ...
2018-10-02 14:43:31 +02:00
Nicolas Grekas
196086c513 Merge branch '3.4' into 4.1
* 3.4:
  [php_cs] disable fopen_flags
  [DI] fix error in dumped container
  [CS] Remove unused variables passed to closures
  [DI] fix dumping setters before their inlined instances
  [CS] Remove empty comment
  [CS] Enforces null type hint on last position in phpDocs
  [CS] Use combined assignment operators when possible
  Fix a typo in error messages
  Don't return early as this bypasses the auto exit feature
  [Console] Add missing null to input values allowed types
  [PHPUnitBridge] Fix microtime() format
  bumped Symfony version to 3.4.17
  updated VERSION for 3.4.16
  updated CHANGELOG for 3.4.16
  bumped Symfony version to 2.8.47
  update CONTRIBUTORS for 2.8.46
  updated VERSION for 2.8.46
  updated CHANGELOG for 2.8.46
2018-10-02 14:40:59 +02:00
Colin O'Dell
10795cf096 Remove redundant path check
The first `if` statement in this method already performs this same
check, so the expression here always evaluated to `true`.
2018-10-02 08:38:36 -04:00
Nicolas Grekas
25055be92e Merge branch '2.8' into 3.4
* 2.8:
  [php_cs] disable fopen_flags
  [CS] Remove unused variables passed to closures
  [CS] Remove empty comment
  [CS] Enforces null type hint on last position in phpDocs
  [CS] Use combined assignment operators when possible
  Fix a typo in error messages
  [Console] Add missing null to input values allowed types
  [PHPUnitBridge] Fix microtime() format
  bumped Symfony version to 2.8.47
  update CONTRIBUTORS for 2.8.46
  updated VERSION for 2.8.46
  updated CHANGELOG for 2.8.46
2018-10-02 14:28:39 +02:00
Nicolas Grekas
47f2aee4a5 minor #28675 [CS] Enforces null type hint on last position in phpDocs (carusogabriel)
This PR was merged into the 2.8 branch.

Discussion
----------

[CS] Enforces null type hint on last position in phpDocs

| Q             | A
| ------------- | ---
| Branch?       | 2.8
| Bug fix?      | no
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | -   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | - <!-- required for new features -->

As a majority in our codebase, the `null` typehint usually comes in the last position in phpDocs.

Commits
-------

efbba25577 [CS] Enforces null type hint on last position in phpDocs
2018-10-02 14:08:28 +02:00
Nicolas Grekas
73d74c48e4 minor #28673 [CS] Use combined assignment operators when possible (carusogabriel)
This PR was merged into the 2.8 branch.

Discussion
----------

[CS] Use combined assignment operators when possible

| Q             | A
| ------------- | ---
| Branch?       | 2.8
| Bug fix?      | no
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | -   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | - <!-- required for new features -->

Less opcodes for us 😄

Commits
-------

c561e99394 [CS] Use combined assignment operators when possible
2018-10-02 14:06:39 +02:00
Nicolas Grekas
d33e2458ec minor #28676 [CS] Remove empty comment (carusogabriel)
This PR was merged into the 2.8 branch.

Discussion
----------

[CS] Remove empty comment

| Q             | A
| ------------- | ---
| Branch?       | 2.8
| Bug fix?      | no
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | -   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | - <!-- required for new features -->

Commits
-------

3bfd877e16 [CS] Remove empty comment
2018-10-02 13:49:30 +02:00
Nicolas Grekas
8e1f3813e8 bug #28678 [DI] fix dumping setters before their inlined instances (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] fix dumping setters before their inlined instances

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

Commits
-------

d60eb1aa33 [DI] fix dumping setters before their inlined instances
2018-10-02 13:48:40 +02:00
Nicolas Grekas
22aec2490c bug #28672 [DI] fix error in dumped container (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] fix error in dumped container

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

(test case on its way)

Commits
-------

2d0aba6ff8 [DI] fix error in dumped container
2018-10-02 13:41:39 +02:00
Nicolas Grekas
2d0aba6ff8 [DI] fix error in dumped container 2018-10-02 13:33:39 +02:00
Gabriel Caruso
48a70180da
[CS] Remove unused variables passed to closures 2018-10-02 08:25:20 -03:00
Nicolas Grekas
d60eb1aa33 [DI] fix dumping setters before their inlined instances 2018-10-02 09:49:36 +02:00
Gabriel Caruso
3bfd877e16
[CS] Remove empty comment 2018-10-02 00:29:33 -03:00
Gabriel Caruso
efbba25577
[CS] Enforces null type hint on last position in phpDocs 2018-10-02 00:12:00 -03:00
Gabriel Caruso
c561e99394
[CS] Use combined assignment operators when possible 2018-10-01 23:42:26 -03:00
Achilles Kaloeridis
07b67ec2cd Fix a typo in error messages 2018-10-01 21:18:23 +03:00
Craig Duncan
b6c17dfb5e Don't return early as this bypasses the auto exit feature 2018-10-01 15:55:38 +01:00
George Mponos
e54e94c7fe When a CSRF occures on a Form submit add a cause on the FormError object 2018-10-01 10:22:20 +03:00
Robin Chalas
f0bc2a64d7 [Console] Add missing null to input values allowed types 2018-09-30 12:25:15 +02:00
Roland Franssen
0544985934 [Validator] Pre-check constraint validator dependencies 2018-09-30 11:22:12 +02:00
Fabien Potencier
3cca29e689 bumped Symfony version to 4.1.6 2018-09-30 07:08:20 +02:00
Fabien Potencier
296670ce28 updated VERSION for 4.1.5 2018-09-30 07:05:39 +02:00
Fabien Potencier
00efcd48b5 bumped Symfony version to 3.4.17 2018-09-30 07:04:55 +02:00
Fabien Potencier
1a587f99ed updated VERSION for 3.4.16 2018-09-30 06:53:52 +02:00
Fabien Potencier
d1fd4325ea Merge branch '4.1'
* 4.1:
  fixed tests
2018-09-30 06:37:12 +02:00
Fabien Potencier
9db4b0e948 Merge branch '3.4' into 4.1
* 3.4:
  fixed tests
2018-09-30 06:37:01 +02:00
Fabien Potencier
38ff7489dd fixed tests 2018-09-30 06:36:53 +02:00
Fabien Potencier
cfb1140580 Merge branch '4.1'
* 4.1:
  fixed tests
2018-09-30 06:11:44 +02:00
Fabien Potencier
7aba5edcd0 Merge branch '3.4' into 4.1
* 3.4:
  fixed tests
2018-09-30 06:11:26 +02:00
Fabien Potencier
4ed1d85b1a fixed tests 2018-09-30 06:10:38 +02:00
Fabien Potencier
d1db71aa34 bumped Symfony version to 2.8.47 2018-09-30 06:05:12 +02:00
Fabien Potencier
d506102802 updated VERSION for 2.8.46 2018-09-30 05:51:44 +02:00
Fabien Potencier
ae755d09ea Merge branch '4.1'
* 4.1:
  [HttpFoundation] X-Accel-Mapping does not use HTTP key=value syntax
2018-09-30 05:50:33 +02:00
Fabien Potencier
0997ff5a7c bug #28636 [HttpFoundation] X-Accel-Mapping does not use HTTP key=value syntax (c960657)
This PR was squashed before being merged into the 4.1 branch (closes #28636).

Discussion
----------

[HttpFoundation] X-Accel-Mapping does not use HTTP key=value syntax

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

The `X-Accel-Mapping` header does not use the standard HTTP key=value syntax, so using `HeaderUtils::combine()` breaks paths with upper-case letters.

There is no good reason to use `HeaderUtils::combine()` in this case, so simply skip it.

Commits
-------

09343c27d7 [HttpFoundation] X-Accel-Mapping does not use HTTP key=value syntax
2018-09-30 05:47:35 +02:00
Christian Schmidt
09343c27d7 [HttpFoundation] X-Accel-Mapping does not use HTTP key=value syntax 2018-09-30 05:47:28 +02:00
Fabien Potencier
91add60d47 minor #28606 [Validator] Add BC layer covering BicValidator without Intl (chalasr)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Validator] Add BC layer covering BicValidator without Intl

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

Commits
-------

10b8a5f041 [Validator] Add BC layer covering BicValidator without Intl
2018-09-30 05:46:12 +02:00
Fabien Potencier
deaf53c231 Merge branch '4.1'
* 4.1:
  [Console] simplified code
  removed useless phpdoc
  improve docblocks around group sequences
  [Cache] prevent getting older entries when the version key is evicted
  [WebProfilerBundle] added a note in the README
  [Yaml] Skip parser test with root user
  [Filesystem] Skip tests on readable file when run with root user
  [FWBundle] Fix an error in WebTestCase::createClient's PHPDoc
  [HttpFoundation][Security] forward locale and format to subrequests
  [Console] Send the right exit code to console.terminate listeners
  [HttpFoundation] fix hidding warnings from session handlers
  Caching missed templates on cache warmup
2018-09-30 05:40:00 +02:00
Fabien Potencier
46fff8b4d7 Merge branch '3.4' into 4.1
* 3.4:
  [Console] simplified code
  removed useless phpdoc
  improve docblocks around group sequences
  [Cache] prevent getting older entries when the version key is evicted
  [WebProfilerBundle] added a note in the README
  [Yaml] Skip parser test with root user
  [Filesystem] Skip tests on readable file when run with root user
  [FWBundle] Fix an error in WebTestCase::createClient's PHPDoc
  [HttpFoundation][Security] forward locale and format to subrequests
  [Console] Send the right exit code to console.terminate listeners
  [HttpFoundation] fix hidding warnings from session handlers
  Caching missed templates on cache warmup
2018-09-30 05:38:13 +02:00
Fabien Potencier
8805cfdf8d [Console] simplified code 2018-09-30 05:37:36 +02:00
Fabien Potencier
a69e7569e3 Merge branch '2.8' into 3.4
* 2.8:
  removed useless phpdoc
2018-09-30 05:34:39 +02:00
Fabien Potencier
42c5a91ddf removed useless phpdoc 2018-09-30 05:33:07 +02:00
Fabien Potencier
592bbf3470 Merge branch '2.8' into 3.4
* 2.8:
  improve docblocks around group sequences
  [WebProfilerBundle] added a note in the README
  [Filesystem] Skip tests on readable file when run with root user
  [FWBundle] Fix an error in WebTestCase::createClient's PHPDoc
  [HttpFoundation][Security] forward locale and format to subrequests
  [Console] Send the right exit code to console.terminate listeners
  Caching missed templates on cache warmup
2018-09-30 05:32:28 +02:00
Robin Chalas
10b8a5f041 [Validator] Add BC layer covering BicValidator without Intl 2018-09-30 00:23:16 +02:00
Nicolas Grekas
3359e62866 minor #28591 [Validator] improve docblocks around group sequences (xabbuh)
This PR was merged into the 2.8 branch.

Discussion
----------

[Validator] improve docblocks around group sequences

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

Commits
-------

179a081ee3 improve docblocks around group sequences
2018-09-29 23:53:35 +02:00
Nicolas Grekas
3afe4e7b84 bug #28592 [BrowserKit] throw exception when request() wasn't called (xabbuh)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[BrowserKit] throw exception when request() wasn't called

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #...   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony/pull/27807#issuecomment-420985940

Commits
-------

41cfde19f6 throw exception when request() wasn't called
2018-09-29 23:52:52 +02:00
Marko Kaznovac
dc5bf84f15
third parameter of sprintf missing in AbstractRecursivePass::getExpressionLanguage
runtime exception is referencing service as third parameter in sprintf, but none was given.
2018-09-29 23:11:02 +02:00
Roland Franssen
73c688c967 [Form] Check for Intl availibility 2018-09-29 08:27:53 +02:00
Baptiste Leduc
53e7040829
moving Cache-related compiler pass from FrameworkBundle to Cache component 2018-09-26 17:25:42 +02:00
Fabien Potencier
3cd411af3e feature #28588 [Cache] add "setCallbackWrapper()" on adapters implementing CacheInterface for more flexibility (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Cache] add "setCallbackWrapper()" on adapters implementing CacheInterface for more flexibility

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

Preparing my talk at SymfonyLive London, see you all there :)

This allows wrapping the callback passed to `->get($item, $callback, $beta)` in a callable that should at least return `$callback($item)`, but can do something around the call.
The default wrapper is locking the key to provide lock-based stampede protection.
That was already the case before this PR, but in a much dirtier way at the design level.
Fixes a few issues found meanwhile.

Commits
-------

8cf3625b11 [Cache] add "setCallbackWrapper()" on adapters implementing CacheInterface for more flexibility
2018-09-26 09:18:20 +02:00
Fabien Potencier
e6deb092fc feature #28598 [Cache] support configuring multiple Memcached servers in one DSN (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Cache] support configuring multiple Memcached servers in one DSN

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

Useful to reconfigure dynamically an array of memcached servers (eg removing a dead one or adding a new one).
DSN format is e.g. `memcached://localhost?host[foo.bar]=3`.
To ease generating the DSN programmatically, it works also with `memcached:?host[localhost]&host[localhost:12345]&host[/some/memcached.sock:]=3`.

The key of the "host" parameter is a "host:port" pair, the value is the weight of the "host:port" pair.
Sockets need to be specified with the trailing `:` (as shown in the last example).

Commits
-------

8e0605ac18 [Cache] support configuring multiple Memcached servers in one DSN
2018-09-26 07:51:01 +02:00
Fabien Potencier
c9bbc6693e bug #28565 [HttpFoundation][Security] forward locale and format to subrequests (nicolas-grekas)
This PR was merged into the 2.8 branch.

Discussion
----------

[HttpFoundation][Security] forward locale and format to subrequests

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

See discussion in linked issue.

Commits
-------

41eb1914f6 [HttpFoundation][Security] forward locale and format to subrequests
2018-09-26 07:47:26 +02:00
Fabien Potencier
60fac5cefa feature #28447 [HttpFoundation] make cookies auto-secure when passing them $secure=null + plan to make it and samesite=lax the defaults in 5.0 (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[HttpFoundation] make cookies auto-secure when passing them $secure=null + plan to make it and samesite=lax the defaults in 5.0

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

By creating Cookie instances using `null` for the `$secure` argument, this PR allows making cookies inherit their "secure" attribute from the request.

This PR also adds a forward to make $secure=null and samesite=lax the defaults in Symfony 5.0:
- either define all constructor's arguments explicitly
- or use the new `Cookie::create()` factory

Commits
-------

9493cfd5f2 [HttpFoundation] make cookies auto-secure when passing them $secure=null + plan to make it and samesite=lax the defaults in 5.0
2018-09-26 07:44:22 +02:00
Fabien Potencier
10df10ce38 feature #28446 [SecurityBundle] make remember-me cookies auto-secure + inherit their default config from framework.session.cookie_* (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[SecurityBundle] make remember-me cookies auto-secure + inherit their default config from framework.session.cookie_*

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

Let's make it easier to have a good default security level, now for the remember-me cookie.

Commits
-------

6ec223bf6f [SecurityBundle] make remember-me cookies auto-secure + inherit their default config from framework.session.cookie_*
2018-09-26 07:38:44 +02:00
Fabien Potencier
b36172c649 feature #28417 [VarExporter] add Instantiator::instantiate() to create+populate objects without calling their constructor nor any other methods (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[VarExporter] add Instantiator::instantiate() to create+populate objects without calling their constructor nor any other methods

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

A blend of features also provided by https://github.com/doctrine/instantiator and https://github.com/Ocramius/GeneratedHydrator in one simple method. Because it's just a few more lines on top of the existing code infrastructure in the component :)

For example, from the docblock:

```php
// creates an empty instance of Foo
Instantiator::instantiate(Foo::class);

// creates a Foo instance and sets one of its public, protected or private properties
Instantiator::instantiate(Foo::class, ['propertyName' => $propertyValue]);

// creates a Foo instance and sets a private property defined on its parent Bar class
Instantiator::instantiate(Foo::class, [], [
    Bar::class => ['privateBarProperty' => $propertyValue],
]);
```

Instances of ArrayObject, ArrayIterator and SplObjectHash can be created
by using the special `"\0"` property name to define their internal value:

```php
// creates an SplObjectHash where $info1 is attached to $obj1, etc.
Instantiator::instantiate(SplObjectStorage::class, ["\0" => [$obj1, $info1, $obj2, $info2...]]);

// creates an ArrayObject populated with $inputArray
Instantiator::instantiate(ArrayObject::class, ["\0" => [$inputArray, $optionalFlag]]);
```

Misses some tests for now, but reuses the existing code infrastructure used to "unserialize" objects.

Commits
-------

d9bade0385 [VarExporter] add Instantiator::instantiate() to create+populate objects without calling their constructor nor any other methods
2018-09-26 07:34:01 +02:00
Fabien Potencier
2a605c2ed6 bug #28561 [Cache] prevent getting older entries when the version key is evicted (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Cache] prevent getting older entries when the version key is evicted

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

As described in linked issue, using a strategy described in
https://github.com/memcached/memcached/wiki/ProgrammingTricks#deleting-by-namespace

Commits
-------

00855895a8 [Cache] prevent getting older entries when the version key is evicted
2018-09-26 07:27:19 +02:00
Nicolas Grekas
8e0605ac18 [Cache] support configuring multiple Memcached servers in one DSN 2018-09-25 18:08:15 +02:00
Fabien Potencier
9db435ed0c feature #27819 [Serializer] deprecated normalizers and encoders who dont implement the base interfaces (rodnaph)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Serializer] deprecated normalizers and encoders who dont implement the base interfaces

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

Currently the `Serializer` can be constructed with any object regardless of whether or not it implements `NormalizerInterface` or `DenormalizerInterface`. This object will then be ignored when getting a normalizer/denormalizer, so in effect silently ignored for serializer operations.

This change throws an exception on construct if a given normalizer object does not implement one of these interfaces - are there use cases where this would not be true?

Commits
-------

cbc2be8ba8 [Serializer] deprecated normalizers and encoders who dont implement the base interfaces
2018-09-25 11:53:27 +02:00
Christian Flothmann
179a081ee3 improve docblocks around group sequences 2018-09-25 10:06:01 +02:00
Christian Flothmann
41cfde19f6 throw exception when request() wasn't called 2018-09-25 09:51:48 +02:00
Nicolas Grekas
00855895a8 [Cache] prevent getting older entries when the version key is evicted 2018-09-25 09:13:51 +02:00
Nicolas Grekas
8cf3625b11 [Cache] add "setCallbackWrapper()" on adapters implementing CacheInterface for more flexibility 2018-09-24 20:03:00 +02:00
Fabien Potencier
3d2124e128 feature #28572 Make it clear that the profiler is for dev only (fabpot)
This PR was merged into the 4.2-dev branch.

Discussion
----------

Make it clear that the profiler is for dev only

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | kinda yes
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | yes (permanent one)
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | symfony/symfony-docs#10386

Commits
-------

54fda55fd9 made it clear that the profiler is for dev only
2018-09-24 13:27:51 +02:00
Nicolas Grekas
3ad232835d minor #28529 [Yaml] Skip parser test with root user (lbassin)
This PR was squashed before being merged into the 3.4 branch (closes #28529).

Discussion
----------

[Yaml] Skip parser test with root user

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

This PR fix a test failure in YAML Component when running from a php docker container.
By defaut, root user is used to run phpunit. It means permission checking will fail (Root user is always allowed to read files)

Commits
-------

34429797b3 [Yaml] Skip parser test with root user
2018-09-24 10:15:51 +02:00
Laurent Bassin
34429797b3 [Yaml] Skip parser test with root user 2018-09-24 10:15:45 +02:00
Nicolas Grekas
7c87dc9720 minor #28573 [Filesystem] Skip tests on readable file when run with root user (lbassin)
This PR was merged into the 2.8 branch.

Discussion
----------

[Filesystem] Skip tests on readable file when run with root user

| Q             | A
| ------------- | ---
| Branch?       | 2.8 <!-- see below -->
| Bug fix?      | yes
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #28478   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | - <!-- required for new features -->

This PR fix tests failures in Filesystem Component when running from a php docker container.
By defaut, root user is used to run phpunit. It means permission checking will fail (Root user is always allowed to read files)

Linked to #28529

Commits
-------

ad500e74ec [Filesystem] Skip tests on readable file when run with root user
2018-09-24 10:14:14 +02:00
Laurent Bassin
ad500e74ec
[Filesystem] Skip tests on readable file when run with root user 2018-09-24 10:04:37 +02:00
Fabien Potencier
54fda55fd9 made it clear that the profiler is for dev only 2018-09-24 10:00:32 +02:00
Roland Franssen
c762735075 Favor LogicException for missing classes & functions 2018-09-24 09:37:12 +02:00
Fabien Potencier
31f8cb9706 feature #28569 [Form] deprecate precision in IntegerToLocalizedStringTransformer (xabbuh)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Form] deprecate precision in IntegerToLocalizedStringTransformer

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

Commits
-------

65362e0ace deprecate precision in IntegerToLocalizedStringTransformer
2018-09-24 07:57:37 +02:00
Fabien Potencier
792ec82c1a feature #28570 [Form] deprecate the unused scale option (xabbuh)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Form] deprecate the unused scale option

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

Commits
-------

40413aad24 deprecate the unused scale option
2018-09-24 07:52:57 +02:00
Christian Flothmann
65362e0ace deprecate precision in IntegerToLocalizedStringTransformer 2018-09-23 21:23:49 +02:00
Christian Flothmann
40413aad24 deprecate the unused scale option 2018-09-23 21:21:47 +02:00
Jan Schädlich
ae76c6824b [VarDumper] add casters for IntlDateFormatter and IntlCalendar 2018-09-23 18:25:21 +02:00
Nicolas Grekas
41eb1914f6 [HttpFoundation][Security] forward locale and format to subrequests 2018-09-23 17:27:53 +02:00
Nicolas Grekas
c53b687f21 feature #28559 [VarDumper] add caster for IntlTimeZone (jschaedl)
This PR was squashed before being merged into the 4.2-dev branch (closes #28559).

Discussion
----------

[VarDumper] add caster for IntlTimeZone

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

Commits
-------

c94217c832 [VarDumper] add caster for IntlTimeZone
2018-09-23 16:56:12 +02:00
Jan Schädlich
c94217c832 [VarDumper] add caster for IntlTimeZone 2018-09-23 16:56:03 +02:00
Fabien Potencier
7c08e43b78 feature #28449 [DependencyInjection] improved message when alias service is not found (xabbuh)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[DependencyInjection] improved message when alias service is not found

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

When using the YAML config format, it can be confusing that you need to
prefix the aliased service id with an `@` character when passing it as
a string, but that you have to omit it when using the `alias` attribute:

```yaml
foo: '@App\Foo'

foo:
    alias: 'App\Foo'
```

This commit will enhance the generated error message in cases where the
aliased service id is prefixed with the `@` character in the `alias`
option like this:

```yaml
foo:
    alias: '@App\Foo'
```

Commits
-------

280ecbc2be improved message when alias service is not found
2018-09-23 14:54:20 +02:00
Robin Chalas
e95ea8132f feature #27434 [Console] Add support for error ouput in the CommandTester (cdekok)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Console] Add support for error ouput in the CommandTester

Move initialization of the streams to the trait so the `capture_stderr_separately` also works in the CommandTester.

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #27422
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Make it possible to test seperate stderr output.

```$tester = new CommandTester($command);
$tester->execute(
    array('foo' => 'bar'),
    array('capture_stderr_separately' => true)
);

$this->assertEquals('foo', $tester->getErrorOutput());
````

Commits
-------

cec5317 [Console] Add support for error ouput in the CommandTester
2018-09-23 13:45:23 +02:00
Chris de Kok
cec531707f [Console] Add support for error ouput in the CommandTester 2018-09-23 13:34:50 +02:00
Nicolas Grekas
a43f307224 feature #28555 [VarDumper] add caster for NumberFormatter (jschaedl)
This PR was squashed before being merged into the 4.2-dev branch (closes #28555).

Discussion
----------

[VarDumper] add caster for NumberFormatter

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

Commits
-------

0bd8a0b0bb [VarDumper] add caster for NumberFormatter
2018-09-23 12:41:31 +02:00
Jan Schädlich
0bd8a0b0bb [VarDumper] add caster for NumberFormatter 2018-09-23 12:41:24 +02:00
Robin Chalas
54bd905cb0 bug #28545 [Console] Send the right exit code to console.terminate listeners (mpdude)
This PR was squashed before being merged into the 2.8 branch (closes #28545).

Discussion
----------

[Console] Send the right exit code to console.terminate listeners

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

When a Console command throws an exception without a status code, `Application::run()` takes care of setting the exit code to `1` when the exception does not provide a code itself.

This happens slightly too late, as `console.terminate` event listeners that are called from within `Application::doRunCommand()` are given the plain exeception code, before this conversion.

The result is that `console.*` event listeners that you might be using to log exit code e. g. for cron jobs will see a `0` code instead of the real value used to terminate the script.

***Todo:***

- [x] Make sure we've got tests covering this, i. e. do not mock out `doRunCommand()`.

Commits
-------

b90a3f1 [Console] Send the right exit code to console.terminate listeners
2018-09-23 12:04:26 +02:00
Matthias Pigulla
b90a3f12a1 [Console] Send the right exit code to console.terminate listeners 2018-09-23 12:04:15 +02:00
Christian Flothmann
280ecbc2be improved message when alias service is not found
When using the YAML config format, it can be confusing that you need to
prefix the aliased service id with an `@` character when passing it as
a string, but that you have to omit it when using the `alias` attribute:

```yaml
foo: '@App\Foo'

foo:
    alias: 'App\Foo'
```

This commit will enhance the generated error message in cases where the
aliased service id is prefixed with the `@` character in the `alias`
option like this:

```yaml
foo:
    alias: '@App\Foo'
```
2018-09-23 11:10:46 +02:00
Nicolas Grekas
f405b4d5a0 [HttpFoundation] fix hidding warnings from session handlers 2018-09-23 10:13:20 +02:00
Nicolas Grekas
a26bd3673f Merge branch '4.1'
* 4.1:
  [Debug] Fix false-positive "MicroKernelTrait::loadRoutes()" method is considered internal"
  [Console] Fixed boxed table style with colspan
  parse numbers terminated with decimal separator
  fail reverse transforming invalid RFC 3339 dates
2018-09-22 22:55:36 +02:00
Nicolas Grekas
0e47775d62 Merge branch '3.4' into 4.1
* 3.4:
  [Debug] Fix false-positive "MicroKernelTrait::loadRoutes()" method is considered internal"
  [Console] Fixed boxed table style with colspan
  parse numbers terminated with decimal separator
  fail reverse transforming invalid RFC 3339 dates
2018-09-22 21:04:12 +02:00
Nicolas Grekas
9bc774ccf2 bug #28553 [Debug] Fix false-positive "MicroKernelTrait::loadRoutes()" method is considered internal" (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Debug] Fix false-positive "MicroKernelTrait::loadRoutes()" method is considered internal"

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes (fixing and unreleased issue)
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #28549
| License       | MIT
| Doc PR        | -

Introduced in #28411
Just a failing test for now.

Commits
-------

46c4f71bf0 [Debug] Fix false-positive "MicroKernelTrait::loadRoutes()" method is considered internal"
2018-09-22 20:50:47 +02:00
Nicolas Grekas
3e47e9ca59 Merge branch '2.8' into 3.4
* 2.8:
  [Console] Fixed boxed table style with colspan
  parse numbers terminated with decimal separator
  fail reverse transforming invalid RFC 3339 dates
2018-09-22 20:49:52 +02:00
Nicolas Grekas
57a34131c6 bug #28466 [Form] fail reverse transforming invalid RFC 3339 dates (xabbuh)
This PR was merged into the 2.8 branch.

Discussion
----------

[Form] fail reverse transforming invalid RFC 3339 dates

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

Commits
-------

ee4ce43e91 fail reverse transforming invalid RFC 3339 dates
2018-09-22 20:44:32 +02:00
Nicolas Grekas
46c4f71bf0 [Debug] Fix false-positive "MicroKernelTrait::loadRoutes()" method is considered internal" 2018-09-22 20:25:03 +02:00
Fabien Potencier
7ae57225d1 feature #28538 [Lock] Wrap release exception (jderusse)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Lock] Wrap release exception

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

Commits
-------

c37f9e9e32 Wrap release exception
2018-09-22 18:08:30 +02:00
Nicolas Grekas
aa24e4ce15 [VarDumper] add caster for MessageFormatter 2018-09-22 10:46:58 +02:00
Nicolas Grekas
40b547e122 bug #28540 [Intl] parse numbers terminated with decimal separator (xabbuh)
This PR was merged into the 2.8 branch.

Discussion
----------

[Intl] parse numbers terminated with decimal separator

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

Commits
-------

4225f36b86 parse numbers terminated with decimal separator
2018-09-22 09:42:26 +02:00
Roland Franssen
a67ff2a2d6 [Console] Fixed boxed table style with colspan 2018-09-21 21:58:02 +02:00
Nicolas Grekas
c51592c574 feature #28329 [Debug] Trigger a deprecation for new parameters not defined in sub classes (GuilhemN)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Debug] Trigger a deprecation for new parameters not defined in sub classes

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

I'm not sure the way https://github.com/symfony/symfony/pull/28316 is implemented is the best so here is an alternative.
Instead of counting on a call from the child method, it uses the `DebugClassLoader` and `@param` annotations. If a `@param` annotation is used on a parent but is then not actually implemented in the child class, a deprecation will be thrown.

Example:
```php
class ClassWithAnnotatedParameters
{
    /**
     * @param string $foo This is a foo parameter.
     */
    public function fooMethod(string $foo)
    {
    }

    /**
     * @param string $bar parameter not implemented yet
     */
    public function barMethod(/** string $bar = null */)
    {
    }

    /**
     * @param Quz $quz parameter not implemented yet
     */
    public function quzMethod(/** Quz $quz = null */)
    {
    }
}
```

```php
class SubClassWithAnnotatedParameters extends ClassWithAnnotatedParameters {
    public function fooMethod(string $foo) { }
    public function barMethod($bar = null) { }
    public function quzMethod() { }
}
```

A deprecation will be triggered because ``SubClassWithAnnotatedParameters::quzMethod()`` which doesn't definee `$quz`.

Commits
-------

1f5d8b62f7 [Debug] Trigger a deprecation for new parameters not defined in sub classes
2018-09-21 18:04:38 +02:00
Guilhem Niot
1f5d8b62f7 [Debug] Trigger a deprecation for new parameters not defined in sub classes 2018-09-21 17:50:51 +02:00
Christian Flothmann
4225f36b86 parse numbers terminated with decimal separator 2018-09-21 16:33:46 +02:00
Jérémy Derussé
c37f9e9e32
Wrap release exception 2018-09-21 15:50:12 +02:00
Nicolas Grekas
1fc66ff080 Merge branch '4.1'
* 4.1:
  Fix CS
  Allow reuse of Session between requests
  [MonologBridge] Re-add option option to ignore empty context and extra data
  [Lock] remove useless code
  [PhpUnitBridge] fix disabling DeprecationErrorHandler using phpunit.xml file
  Provide debug_backtrace with proper args
  [DI] fix infinite loop involving self-references in decorated services
  forward false label option to nested types
  [DI] fix dumping lazy services
  forward the invalid_message option in date types
2018-09-21 14:51:02 +02:00
Nicolas Grekas
76cf0ca661 Merge branch '3.4' into 4.1
* 3.4:
  Fix CS
  Allow reuse of Session between requests
  [MonologBridge] Re-add option option to ignore empty context and extra data
  [Lock] remove useless code
  [PhpUnitBridge] fix disabling DeprecationErrorHandler using phpunit.xml file
  Provide debug_backtrace with proper args
  [DI] fix infinite loop involving self-references in decorated services
  forward false label option to nested types
  forward the invalid_message option in date types
2018-09-21 14:49:42 +02:00
Nicolas Grekas
0218507b06 Merge branch '2.8' into 3.4
* 2.8:
  Fix CS
  Allow reuse of Session between requests
  Provide debug_backtrace with proper args
  forward false label option to nested types
  forward the invalid_message option in date types
2018-09-21 14:47:54 +02:00