Commit Graph

35352 Commits

Author SHA1 Message Date
Iltar van der Berg
8456f3b32c Deprecated the AdvancedUserInterface 2018-02-04 19:41:02 +01:00
Nicolas Grekas
52e9f836b3 fix merge 2018-02-04 18:35:11 +01:00
Nicolas Grekas
78ebc6d5ce feature #24781 [HttpFoundation] RedisSessionHandler (dkarlovi)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[HttpFoundation] RedisSessionHandler

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #24433, #18233, #14539, #4538, #3498
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/8572

Ability to use Redis as a session storage backend. Discussed in detail in linked issues / PRs.

Commits
-------

8776cce [HttpFoundation] Add RedisSessionHandler
2018-02-04 18:22:21 +01:00
Dalibor Karlović
8776ccee03 [HttpFoundation] Add RedisSessionHandler 2018-02-04 18:18:03 +01:00
Nicolas Grekas
2ef0d600aa Merge branch '4.0'
* 4.0:
  Use the PCRE_DOLLAR_ENDONLY modifier in route regexes
  [Form] Make sure errors are a part of the label on bootstrap 4 - this is a requirement for WCAG2
  [Config] Only using filemtime to check file freshness
2018-02-04 17:44:20 +01:00
Nicolas Grekas
767b028439 Merge branch '3.4' into 4.0
* 3.4:
  Use the PCRE_DOLLAR_ENDONLY modifier in route regexes
  [Form] Make sure errors are a part of the label on bootstrap 4 - this is a requirement for WCAG2
  [Config] Only using filemtime to check file freshness
2018-02-04 17:43:51 +01:00
Nicolas Grekas
5e094e8752 Merge branch '2.8' into 3.4
* 2.8:
  Use the PCRE_DOLLAR_ENDONLY modifier in route regexes
2018-02-04 17:43:40 +01:00
Nicolas Grekas
c337bf6810 Merge branch '2.7' into 2.8
* 2.7:
  Use the PCRE_DOLLAR_ENDONLY modifier in route regexes
2018-02-04 17:41:06 +01:00
Nicolas Grekas
d9e9b261a4 bug #25471 [HttpFoundation] we should not pass size on FileBag removing the contruct parameter (Simperfit, xabbuh)
This PR was merged into the 4.1-dev branch.

Discussion
----------

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

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

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

Commits
-------

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

Discussion
----------

Use the PCRE_DOLLAR_ENDONLY modifier in route regexes

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

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

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

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

Commits
-------

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

Discussion
----------

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

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

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

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

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

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

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

Commits
-------

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

Discussion
----------

Unwrap errors in FlattenException

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

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

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

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

Commits
-------

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

Discussion
----------

[Config] Only using filemtime to check file freshness

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

Commits
-------

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

Discussion
----------

[travis] cache compiled php extensions

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

Should save more that 80s per job on PHP 7 esp.

Commits
-------

b9def8a [travis] cache compiled php extensions
2018-02-04 13:53:07 +01:00
Nicolas Grekas
c026ec63e3 bug #25762 [DependencyInjection] always call the parent class' constructor (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[DependencyInjection] always call the parent class' constructor

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

Commits
-------

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

Discussion
----------

[DI] Put non-shared service factories in closures

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

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

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

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

Commits
-------

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

Discussion
----------

[Config] Handle Service/EventSubscriberInterface in ReflectionClassResource

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

@weaverryan that should fix an issue you reported.

Commits
-------

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

Discussion
----------

[DI][Routing] Fix tracking of globbed resources

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

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

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

Commits
-------

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

Discussion
----------

Improve assertions

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

Following #25420 in `3.4` branch.

Commits
-------

829f59d Improve assertions
2018-02-04 11:29:43 +01:00
Nicolas Grekas
1d5c229720 bug #26009 [SecurityBundle] Allow remember-me factory creation when multiple user providers are configured. (iisisrael)
This PR was merged into the 3.4 branch.

Discussion
----------

[SecurityBundle] Allow remember-me factory creation when multiple user providers are configured.

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

When more than one user provider is configured, and `remember_me` is enabled on a firewall, this avoids the deprecation notice in 3.4 and thrown `InvalidConfigurationException` in 4.0 ("Not configuring explicitly the provider for the "remember_me" listener on "foo" firewall is ambiguous as there is more than one registered provider.").  The `RememberMeFactory` ignores the `$userProvider` argument and uses the secret configured for the firewall.  (If no secret is configured, it throws its own exception.)

The added test passes in 3.4 with a deprecation notice without the change, so would expect it to fail in 4.0 without the change.

Other tests in the `SecurityBundle` already included two errors and one failure, not related to this change.

Commits
-------

6ab8dd9 Allow remember-me factory creation when multiple user providers are configured.
2018-02-04 11:27:39 +01:00
Nicolas Grekas
003e616008 minor #26037 [Lock] Fix strategy tests (Valouleloup)
This PR was submitted for the master branch but it was merged into the 3.4 branch instead (closes #26037).

Discussion
----------

[Lock] Fix strategy tests

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

Not sure if it is a mistake, but in Phpunit tests need to begin with ` test ` to be played, right ?

Commits
-------

afbb8be Fix lock strategy tests
2018-02-04 11:01:34 +01:00
Valouleloup
afbb8bec18 Fix lock strategy tests 2018-02-04 11:01:34 +01:00
Nicolas Grekas
b9def8ab50 [travis] cache compiled php extensions 2018-02-04 10:47:47 +01:00
Nicolas Grekas
9be03d8911 Merge branch '4.0'
* 4.0:
  [CssSelector] For AND operator, the left operand should have parentheses, not only right operand
  Removed unused parameter from flattenDataProvider().
  Update MongoDB extension on travis to make the builds green again.
2018-02-03 15:58:56 +01:00
Nicolas Grekas
e1e523bf5d Merge branch '3.4' into 4.0
* 3.4:
  [CssSelector] For AND operator, the left operand should have parentheses, not only right operand
  Removed unused parameter from flattenDataProvider().
  Update MongoDB extension on travis to make the builds green again.
2018-02-03 15:58:37 +01:00
Nicolas Grekas
48db494b19 fix merge 2018-02-03 15:55:47 +01:00
Nicolas Grekas
18510f8352 Merge branch '2.8' into 3.4
* 2.8:
  [CssSelector] For AND operator, the left operand should have parentheses, not only right operand
  Removed unused parameter from flattenDataProvider().
  Update MongoDB extension on travis to make the builds green again.
2018-02-03 15:55:07 +01:00
Nicolas Grekas
30fc304626 Merge branch '2.7' into 2.8
* 2.7:
  [CssSelector] For AND operator, the left operand should have parentheses, not only right operand
  Removed unused parameter from flattenDataProvider().
  Update MongoDB extension on travis to make the builds green again.
2018-02-03 15:53:47 +01:00
Nicolas Grekas
1111da7363 bug #26010 [CssSelector] For AND operator, the left operand should have parentheses, not only right operand (Arnaud CHASSEUX)
This PR was merged into the 2.7 branch.

Discussion
----------

[CssSelector] For AND operator, the left operand should have parentheses, not only right operand

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

From https://github.com/symfony/css-selector/pull/3

Commits
-------

76b40dc [CssSelector] For AND operator, the left operand should have parentheses, not only right operand
2018-02-03 12:00:12 +01:00
Arnaud CHASSEUX
76b40dc10e [CssSelector] For AND operator, the left operand should have parentheses, not only right operand 2018-02-03 11:49:50 +01:00
Nicolas Grekas
d0e03a4bbe minor #26029 Removed unused parameter from flattenDataProvider() (derrabus)
This PR was merged into the 2.7 branch.

Discussion
----------

Removed unused parameter from flattenDataProvider()

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

While working on #26028, I noticed that FlattenExceptionTest::FlattenExceptionTest.php() exposes two arguments although all tests consuming that provider only use the first one. This PR removes the unnecessary second argument.

Commits
-------

d6f4f51 Removed unused parameter from flattenDataProvider().
2018-02-03 11:40:13 +01:00
Dmitriy Fedorenko
52c9cb4025 [Config] Only using filemtime to check file freshness 2018-02-03 11:33:09 +01:00
Nicolas Grekas
dbe5b14620 minor #26018 Update MongoDB extension on travis to make the builds green again (derrabus)
This PR was merged into the 2.7 branch.

Discussion
----------

Update MongoDB extension on travis to make the builds green again

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

Currently, php 7.1 and 7.2 runs on travis are failing because we're testing against `mongodb/mongodb` 1.3-dev which requires a more recent version of `ext-mongodb` than Travis provides.

This PR attempts to fix the issue by installing that version via PECL.

Commits
-------

e0132cc Update MongoDB extension on travis to make the builds green again.
2018-02-03 11:27:25 +01:00
Robin Chalas
1e90ddd00d Merge branch '4.0'
* 4.0:
  [Intl] Fixed the broken link
  Fix typo
  Fix typo
  Fixed issue #25985
  Don't show wanna-be-private services as public in debug:container
  [Routing] Fix trailing slash redirection for non-safe verbs
  [DI] Fix tracking of source class changes for lazy-proxies
  Proxy class names should be deterministic and independent of spl_object_hash() which is somewhat random
  [Debug] Fix bad registration of exception handler, leading to mem leak
  [Form] Fixed empty data on expanded ChoiceType and FileType
  collect extension information as late as possible
2018-02-03 01:58:16 +01:00