Commit Graph

33374 Commits

Author SHA1 Message Date
Fabien Potencier
bf5203102a feature #24887 [Cache][Lock] Add RedisProxy for lazy Redis connections (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Cache][Lock] Add RedisProxy for lazy Redis connections

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

That's the only provider that is not lazy by default, leading to bad DX (see linked issue.)
Best reviewed [ignoring whitespaces](https://github.com/symfony/symfony/pull/24887/files?w=1).

Commits
-------

1f5e3538d8 [Cache][Lock] Add RedisProxy for lazy Redis connections
2017-11-10 07:24:34 -08:00
Fabien Potencier
b7928c3f27 bug #24633 [Config] Fix cannotBeEmpty() (ro0NL)
This PR was merged into the 3.4 branch.

Discussion
----------

[Config] Fix cannotBeEmpty()

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

Open for better deprecation message, but this should clarify.

cc @iltar

Commits
-------

2269f70180 [Config] Fix cannotBeEmpty()
2017-11-10 07:14:21 -08:00
Roland Franssen
2269f70180 [Config] Fix cannotBeEmpty() 2017-11-10 11:31:31 +01:00
Nicolas Grekas
cf4eb4602a [HttpFoundation] minor session-related fix 2017-11-10 08:36:19 +01:00
Nicolas Grekas
1f5e3538d8 [Cache][Lock] Add RedisProxy for lazy Redis connections 2017-11-10 08:19:32 +01:00
Fabien Potencier
deb499ebaf bug #24837 [TwigBridge] [Bootstrap 4] Fix validation error design for expanded choiceType (ostrolucky)
This PR was merged into the 3.4 branch.

Discussion
----------

[TwigBridge] [Bootstrap 4] Fix validation error design for expanded choiceType

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

Unfortunately I didn't test https://github.com/symfony/symfony/pull/24802 with expanded option set to true, sorry about that. Without this fix, it applies form error style twice.

Before:
![screenshot from 2017-11-06 10 31 55](https://user-images.githubusercontent.com/496233/32434235-c13c02f8-c2dd-11e7-97da-6bfa312c5825.png)

After:
![screenshot from 2017-11-06 10 32 40](https://user-images.githubusercontent.com/496233/32434252-d30c2224-c2dd-11e7-86d6-fd06af3ef753.png)

Commits
-------

39083a2067 [TwigBridge] [Bootstrap 4] Fix validation error design for expanded choiceType
2017-11-09 11:24:47 -08:00
Gabriel Ostrolucký
39083a2067 [TwigBridge] [Bootstrap 4] Fix validation error design for expanded choiceType 2017-11-09 20:22:51 +01:00
Fabien Potencier
a3e0e49094 minor #24872 [DI] Add "container.hot_path" tag to flag the hot path and inline related services (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Add "container.hot_path" tag to flag the hot path and inline related services

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

This PR is the result of my quest to squeeze some performance out of 3.4/4.0.

It builds on two ideas:
- a new `container.inline` tag that identifies the services that are *always* needed. This tag is only applied to a very short list of bootstrapping services (`router`, `event_dispatcher`, `http_kernel` and `request_stack` only). Then, it is propagated to all dependencies of these services, with a special case for event listeners, where only listed events are propagated to their related listeners.
- replacing the PHP autoloader by plain inlined `require_once` in generated service factories, with the benefit of completely bypassing the autoloader for services and their class hierarchy.

The end result is significant, even on a simple Hello World.
Here is the Blackfire profile, results are consistent with `ab` benchmarks:

https://blackfire.io/profiles/compare/b5fa5ef0-755c-4967-b990-572305f8f381/graph

![capture du 2017-11-08 16-54-28](https://user-images.githubusercontent.com/243674/32558666-a3f439b2-c4a5-11e7-83a3-db588c3e21e5.png)

Commits
-------

f7cb559a06 [DI] Add "container.hot_path" tag to flag the hot path and inline related services
2017-11-09 06:24:55 -08:00
Fabien Potencier
8e9f9765b5 bug #24878 [HttpFoundation] Prevent PHP from sending Last-Modified on session start (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[HttpFoundation] Prevent PHP from sending Last-Modified on session start

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

I really don't know why PHP sends this Last-Modified header.
Let's bypass that and throw headers ourselves instead.

Commits
-------

2c0dc745d6 [HttpFoundation] Prevent PHP from sending Last-Modified on session start
2017-11-09 06:22:15 -08:00
Fabien Potencier
bd0899e3d1 minor #24880 [FrameworkBundle] Fine-tune generated annotations.php cache (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[FrameworkBundle] Fine-tune generated annotations.php cache

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

I noticed that the `annotations.php` file generated by `AnnotationsCacheWarmer` contains some noise.
This PR removes it.

Commits
-------

d36adc2392 [FrameworkBundle] Fine-tune generated annotations.php cache
2017-11-09 06:17:34 -08:00
Nicolas Grekas
f7cb559a06 [DI] Add "container.hot_path" tag to flag the hot path and inline related services 2017-11-09 15:14:31 +01:00
Nicolas Grekas
d36adc2392 [FrameworkBundle] Fine-tune generated annotations.php cache 2017-11-09 13:39:01 +01:00
Nicolas Grekas
2c0dc745d6 [HttpFoundation] Prevent PHP from sending Last-Modified on session start 2017-11-09 12:02:13 +01:00
Nicolas Grekas
8cd2193a82 minor #24866 Micro optim using explicit root namespaces (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

Micro optim using explicit root namespaces

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

Just doing that makes my local hello world as fast on 3.3 as on 4.0.
Spotted using Blackfire to identify the hot path.
Confirmed using both `ab` and `blackfire curl` on a local `php -S`.

It's not the first time these root namespaces make a measurable difference (on a selected list of functions only, see https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues/3048.)

https://github.com/FriendsOfPHP/PHP-CS-Fixer/pull/3222 might become a more generic fix for this kind of optims.

Commits
-------

e78d1c4 Micro optim using explicit root namespaces
2017-11-08 13:58:47 +01:00
Nicolas Grekas
e78d1c4551 Micro optim using explicit root namespaces 2017-11-07 21:33:43 +01:00
Fabien Potencier
850bb2d20a minor #24863 [Bridge\Twig] Lazy-load deps (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Bridge\Twig] Lazy-load deps

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

Spotted while benching a HelloWorld and comparing v3.3 to v4.0.
At this micro-bench level, even registering one more twig extension makes a difference (here, it's `TranslationExtension`, after #24358)

Commits
-------

3fc766ff4b [Bridge\Twig] Lazy-load deps
2017-11-07 10:02:31 -08:00
Nicolas Grekas
3fc766ff4b [Bridge\Twig] Lazy-load deps 2017-11-07 18:37:38 +01:00
Nicolas Grekas
2dbe17b9e9 minor #24859 [3.4] Remove useless docblocks (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[3.4] Remove useless docblocks

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

Commits
-------

82ce33d [3.4] Remove useless docblocks
2017-11-07 15:31:47 +01:00
Nicolas Grekas
82ce33d5eb [3.4] Remove useless docblocks 2017-11-07 15:28:09 +01:00
Nicolas Grekas
629895c3ef Merge branch '3.3' into 3.4
* 3.3:
  [3.3] More docblock fixes
  [2.7] More docblock fixes
2017-11-07 15:20:24 +01:00
Nicolas Grekas
7bcb90f75c minor #24858 [3.3] More docblock fixes (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[3.3] More docblock fixes

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

Commits
-------

7b6caba [3.3] More docblock fixes
2017-11-07 15:19:06 +01:00
Nicolas Grekas
7b6cabad22 [3.3] More docblock fixes 2017-11-07 15:16:22 +01:00
Nicolas Grekas
d3d32d9deb Merge branch '2.8' into 3.3
* 2.8:
  [2.7] More docblock fixes
2017-11-07 15:12:55 +01:00
Nicolas Grekas
72b92c351e Merge branch '2.7' into 2.8
* 2.7:
  [2.7] More docblock fixes
2017-11-07 15:08:47 +01:00
Nicolas Grekas
1e0f2267bb minor #24857 [2.7] More docblock fixes (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[2.7] More docblock fixes

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

Commits
-------

ac671ac [2.7] More docblock fixes
2017-11-07 15:08:02 +01:00
Nicolas Grekas
ac671ac68c [2.7] More docblock fixes 2017-11-07 15:04:08 +01:00
Nicolas Grekas
b2edd51177 bug #24850 [DI] Fix cannot bind env var (ogizanagi)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Fix cannot bind env var

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

In #24602 we removed the processing of bindings from the `AbstractRecursivePass`. But there is actually one case where we want a recursive pass to process them: to resolve env param placeholders.

Commits
-------

f8f3a15 [DI] Fix cannot bind env var
2017-11-07 14:40:01 +01:00
Nicolas Grekas
69b48d0122 bug #24851 [TwigBridge] Fix BC break due required twig environment (ro0NL)
This PR was squashed before being merged into the 3.4 branch (closes #24851).

Discussion
----------

[TwigBridge] Fix BC break due required twig environment

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

See https://github.com/ezsystems/ezplatform-design-engine/pull/12 + https://github.com/silexphp/Silex-WebProfiler/pull/126 + https://github.com/bolt/bolt/pull/7154

Sorry for that :)

cc @fabpot

Commits
-------

243e4b2 [TwigBridge] Fix BC break due required twig environment
2017-11-07 14:35:34 +01:00
Roland Franssen
243e4b2e2f [TwigBridge] Fix BC break due required twig environment 2017-11-07 14:35:31 +01:00
Nicolas Grekas
88f228b9cd minor #24846 Fix some signatures in PHP-DSLs (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

Fix some signatures in PHP-DSLs

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

Commits
-------

af85431 Fix some signatures in PHP-DSLs
2017-11-07 13:12:57 +01:00
Nicolas Grekas
c4ae73939e Merge branch '3.3' into 3.4
* 3.3:
  Random fixes
  Docblock fixes
  [HttpKernel] Enhance deprecation message
  [SecurityBundle] Fix the datacollector to properly support decision.object being null
2017-11-07 13:10:25 +01:00
Nicolas Grekas
9a20a97779 minor #24855 Random fixes (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

Random fixes

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

Commits
-------

49e5763 Random fixes
2017-11-07 13:08:18 +01:00
Nicolas Grekas
49e57636f2 Random fixes 2017-11-07 13:07:19 +01:00
Nicolas Grekas
39a5801fc9 Merge branch '2.8' into 3.3
* 2.8:
  Docblock fixes
2017-11-07 12:58:40 +01:00
Nicolas Grekas
96dcb10a80 Merge branch '2.7' into 2.8
* 2.7:
  Docblock fixes
2017-11-07 12:56:23 +01:00
Nicolas Grekas
4371d03d61 minor #24854 Docblock fixes (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

Docblock fixes

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

Commits
-------

b56bfe7 Docblock fixes
2017-11-07 12:56:10 +01:00
Nicolas Grekas
b56bfe7d8a Docblock fixes 2017-11-07 12:54:30 +01:00
Maxime Steinhausser
f8f3a15b7a [DI] Fix cannot bind env var 2017-11-07 09:01:11 +01:00
Nicolas Grekas
af8543107a Fix some signatures in PHP-DSLs 2017-11-06 21:11:38 +01:00
Fabien Potencier
5dcd82ca28 minor #24829 [SecurityBundle] Fix the datacollector to properly support decision.object being null (ogizanagi)
This PR was merged into the 3.3 branch.

Discussion
----------

[SecurityBundle] Fix the datacollector to properly support decision.object being null

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

Similar to https://github.com/symfony/symfony/pull/23050, when accessing a `Data` clone property through `__get()` and the value is `null` for instance, you'll really get `null` instead of a `Data` instance. The solution is to use `seek` instead whenever we access and try to use `profiler_dump` on a `Data` property that can be a simple scalar like `null` or `false`. AFAIK, `decision.object` is the only one here.

Commits
-------

769a5f204f [SecurityBundle] Fix the datacollector to properly support decision.object being null
2017-11-06 01:14:54 -08:00
Fabien Potencier
cbd42f7fa0 minor #24610 [HttpKernel] Enhance deprecation message (delboy1978uk)
This PR was squashed before being merged into the 3.3 branch (closes #24610).

Discussion
----------

[HttpKernel] Enhance deprecation message

Q | A
-- | --
Branch? | 3.4
Bug fix? | no
New feature? | no
BC breaks? | no
Deprecations? | no (Docblock with info on how to handle deprecation)
Tests pass? | yes
Fixed tickets | NA
License | MIT
Doc PR | symfony/symfony-docs#...

Commits
-------

9e9d01684e [HttpKernel] Enhance deprecation message
2017-11-06 01:12:10 -08:00
Derek Stephen McLean
9e9d01684e [HttpKernel] Enhance deprecation message 2017-11-06 01:12:09 -08:00
Fabien Potencier
0aedd686dd bumped Symfony version to 3.4.0 2017-11-05 15:20:14 -08:00
Fabien Potencier
1ae23efa1e
Merge pull request #24831 from fabpot/release-3.4.0-BETA3
released v3.4.0-BETA3
2017-11-05 14:52:09 -08:00
Fabien Potencier
f317976fcf updated VERSION for 3.4.0-BETA3 2017-11-05 14:51:48 -08:00
Fabien Potencier
76b2e1b84c updated CHANGELOG for 3.4.0-BETA3 2017-11-05 14:50:59 -08:00
Maxime Steinhausser
769a5f204f [SecurityBundle] Fix the datacollector to properly support decision.object being null 2017-11-05 20:42:22 +01:00
Nicolas Grekas
eaeb820ee2 Merge branch '3.3' into 3.4
* 3.3:
  [HttpFoundation] Fix forward-compat of NativeSessionStorage with PHP 7.2
2017-11-05 20:07:09 +01:00
Nicolas Grekas
ed52036412 Merge branch '2.8' into 3.3
* 2.8:
  [HttpFoundation] Fix forward-compat of NativeSessionStorage with PHP 7.2
2017-11-05 20:07:00 +01:00
Nicolas Grekas
9ca5069cb4 Merge branch '2.7' into 2.8
* 2.7:
  [HttpFoundation] Fix forward-compat of NativeSessionStorage with PHP 7.2
2017-11-05 20:06:07 +01:00