Commit Graph

6353 Commits

Author SHA1 Message Date
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
Robin Chalas
9f60ff8a4d [FrameworkBundle] Deprecate the "--env" and "--no-debug" options 2018-10-02 11:07:15 +02:00
Daniel Alejandro Cast
05935d848f Add vscode editor to ide config 2018-10-02 08:29:15 +00: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
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
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
Baptiste Leduc
53e7040829
moving Cache-related compiler pass from FrameworkBundle to Cache component 2018-09-26 17:25:42 +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
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
Nicolas Grekas
8e0605ac18 [Cache] support configuring multiple Memcached servers in one DSN 2018-09-25 18:08:15 +02:00
Kévin Dunglas
3033aaf6fb
[FWBundle] Fix an error in WebTestCase::createClient's PHPDoc 2018-09-23 18:44:35 +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
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
e198a26baf feature #28523 [FrameworkBundle] Register an identity translator as fallback (yceruto)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[FrameworkBundle] Register an identity translator as fallback

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

The same approach as https://github.com/symfony/symfony/pull/24358, suggested by @xabbuh here https://github.com/symfony/symfony/issues/27589#issuecomment-421542776

**Templating Engine Context**

The Form component can be used without the Translation component.
However, to be able to use the default form themes provided by the
`FrameworkBundle` you need to have the `translator` helper to be available.

This change ensure that there will always be a `translator` helper which
as a fallback will just return the message key if no translator is present.

Commits
-------

5330f2d017 [FrameworkBundle] Register an identity translator as fallback
2018-09-21 13:01:20 +02:00
Yonel Ceruto
5330f2d017 [FrameworkBundle] Register an identity translator as fallback
The Form component can be used without the Translation component.
However, to be able to use the default form themes provided by the
FrameworkBundle you need to have the `translator` helper to be
available.

This change ensure that there will always be a `translator` helper which
as a fallback will just return the message key if no translator is
present.
2018-09-20 13:39:51 +02:00
Nicolas Grekas
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-20 08:41:35 +02:00
Nicolas Grekas
cb13594826 feature #28487 [FrameworkBundle] Ignore backslashes in service ids when using debug:container and debug:autowiring (respinoza)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[FrameworkBundle] Ignore backslashes in service ids when using debug:container and debug:autowiring

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

Commits
-------

0aba355d8e [FrameworkBundle] Ignore backslashes in service ids when using `debug:container` and `debug:autowiring`
2018-09-19 16:47:07 +02:00
Roberto Espinoza
0aba355d8e [FrameworkBundle] Ignore backslashes in service ids when using debug:container and debug:autowiring 2018-09-19 16:42:41 +02:00
Nicolas Grekas
3caa9d44ad feature #28416 [FrameworkBundle] bind "ContainerInterface $parameterBag" arguments to the "parameter_bag" service (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[FrameworkBundle] bind "ContainerInterface $parameterBag" arguments to the "parameter_bag" service

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

Commits
-------

2c428d130d [FrameworkBundle] bind "ContainerInterface $parameterBag" arguments to the "parameter_bag" service
2018-09-18 18:45:03 +02:00
Robin Chalas
68c869ba8e Merge branch '4.1'
* 4.1:
  [FrameworkBundle] Don't register MessengerDataCollector if messenger is not enabled
  [Validator] Add Japanese translations
  [Console] Fix input values allowed types
2018-09-16 13:51:03 +02:00
Robin Chalas
e64ceb5c13 [FrameworkBundle] Don't register MessengerDataCollector if messenger is not enabled 2018-09-15 12:55:03 +02:00
Robin Chalas
5b0801998d Merge branch '4.1'
* 4.1:
  [Console] Fix typo in tests
  [Console] Correct Command::initialize() and InputInterface::bind() phpdoc regarding thrown exceptions
  [Console] fixed corrupt error output for unknown multibyte short option
  [Console] fixed PHPDoc for setArgument/setOption in InputInterface
  Register the messenger data collector only when the profiler is enabled
  [Intl] Blacklist Eurozone and United Nations in Region Data Generator
2018-09-15 12:26:24 +02:00
Nicolas Grekas
b2718d7666 Remove all usages of call_user_func_array() 2018-09-11 09:53:26 +02:00
Robin Chalas
744bf0e7ac [FrameworkBundle] Deprecate ContainerAwareCommand 2018-09-10 10:14:57 +02:00
Pierre du Plessis
bd3a66bc59
Register the messenger data collector only when the profiler is enabled 2018-09-10 08:11:11 +02:00
Nicolas Grekas
2c428d130d [FrameworkBundle] bind "ContainerInterface $parameterBag" arguments to the "parameter_bag" service 2018-09-09 21:29:59 +02:00
Samuel ROZE
5b93f5f45e Uses a messenger serializer, not an individual encoder/decoder 2018-09-09 11:28:13 +01:00
Nicolas Grekas
004c315b0c Merge branch '4.1'
* 4.1:
  [DI] configure inlined services before injecting them when dumping the container
  Consistently throw exceptions on a single line
  fix fopen calls
  Update .editorconfig
2018-09-08 15:42:43 +02:00
Nicolas Grekas
6fec32c0d0 Merge branch '3.4' into 4.1
* 3.4:
  [DI] configure inlined services before injecting them when dumping the container
  Consistently throw exceptions on a single line
  fix fopen calls
  Update .editorconfig
2018-09-08 15:24:10 +02:00
Nicolas Grekas
8bc014c211 Merge branch '2.8' into 3.4
* 2.8:
  Consistently throw exceptions on a single line
  fix fopen calls
  Update .editorconfig
2018-09-08 15:15:14 +02:00
Nicolas Grekas
721dc8661f Consistently throw exceptions on a single line 2018-09-08 14:44:02 +02:00
Fabien Potencier
e658e155aa [Messenger] added a SenderLocator decoupled from ContainerInterface 2018-09-08 14:26:08 +02:00
Nicolas Grekas
e4d7c74845 Merge branch '4.1'
* 4.1:
  [appveyor] fix
  [DI] Fix dumping some complex service graphs
  Revert "minor #28321 [Routing] Fixed the interface description of the url generator interface (Toflar)"
  Fixed caching of templates in default path on cache warmup
  added missing LICENSE file
  remove cache warmers when Twig cache is disabled
  [Workflow] Make sure we do not run the next transition on an updated state
  change baseUrl to basePath to fix wrong profiler url
  [HttpKernel][FrameworkBundle] Fix escaping of serialized payloads passed to test clients
  chore: rename Appveyor filename
  Fixed the interface description of the url generator interface
  Format file size in validation message according to binaryFormat option
2018-09-05 14:00:05 +02:00
Nicolas Grekas
432487f577 Merge branch '3.4' into 4.1
* 3.4:
  [appveyor] fix
  Revert "minor #28321 [Routing] Fixed the interface description of the url generator interface (Toflar)"
  Fixed caching of templates in default path on cache warmup
  remove cache warmers when Twig cache is disabled
  [HttpKernel][FrameworkBundle] Fix escaping of serialized payloads passed to test clients
  chore: rename Appveyor filename
  Fixed the interface description of the url generator interface
  Format file size in validation message according to binaryFormat option
2018-09-05 13:58:22 +02:00
Nicolas Grekas
5632dc7c7a Merge branch '2.8' into 3.4
* 2.8:
  [appveyor] fix
  Revert "minor #28321 [Routing] Fixed the interface description of the url generator interface (Toflar)"
  remove cache warmers when Twig cache is disabled
  [HttpKernel][FrameworkBundle] Fix escaping of serialized payloads passed to test clients
  chore: rename Appveyor filename
  Fixed the interface description of the url generator interface
  Format file size in validation message according to binaryFormat option
2018-09-05 13:56:21 +02:00
Nicolas Grekas
545c360453 [FrameworkBundle] fix test when intl is disabled 2018-09-05 11:38:07 +02:00
Nicolas Grekas
87392ab30d [DI] leverage Contracts\Service 2018-09-04 19:12:10 +02:00
Kévin Dunglas
9d2ab9e348 [PropertyInfo] Add an extractor to guess if a property is initializable 2018-09-04 17:17:49 +02:00
Fabien Potencier
9ad492f312 feature #26923 [FrameworkBundle] Allow user to specify folder for flock (MaksSlesarenko)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[FrameworkBundle] Allow user to specify folder for flock

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

In case multiple applications running on same server allow user to specify folder for flock
example:
```

framework:
   lock:` 'flock://var/flock' # var/flock will be provided as path to flock constructor
   lock: 'flock:///var/flock' # /var/flock will be provided as path to flock constructor
   lock: flock # works as usual, null is provided to constructor and system temp folder is used

```

Commits
-------

244d762400 added ability to specify folder for flock
2018-09-04 12:23:36 +02:00
Fabien Potencier
617c56bf27 fixed CS 2018-09-04 10:45:51 +02:00
Fabien Potencier
8cf28e65b2 feature #28117 [FrameworkBundle] add class description to debug:container command (gimler)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[FrameworkBundle] add class description to debug:container command

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

Our developer finds it useful when the `console debug:container <service>` command print out the class description.

![bildschirmfoto vom 2018-08-02 14-22-17](https://user-images.githubusercontent.com/200904/43583449-d4bf74e4-965f-11e8-8e88-0db8017c5a90.png)

* [x] json
* [x] txt
* [x] xml
* [x] md

Commits
-------

5fc6155225 [FrameworkBundle] add class description to debug:container command
2018-09-04 10:44:47 +02:00
Fabien Potencier
b91effa619 feature #27935 [FrameworkBundle] [Command] TranslationUpdate change default output to xlf (Alexis BOYER)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[FrameworkBundle] [Command] TranslationUpdate change default output to xlf

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

Simple modification on the default output for the translation: update command to XLIFF (xlf)
It's to be in agreement with the documentation

![image](https://user-images.githubusercontent.com/2004449/42637935-a91dcabc-85ec-11e8-86db-9c8bea5e710b.png)

Link to the documentation :
https://symfony.com/doc/master/translation.html#translation-resource-file-names-and-locations

Commits
-------

137593ec80 [FrameworkBundle] Cmd TranslationUpdate change default output to xlf
2018-09-04 10:41:38 +02:00
Fabien Potencier
7be3bb2d8f feature #28168 Add SameSite cookies to FrameWorkBundle (rpkamp)
This PR was merged into the 4.2-dev branch.

Discussion
----------

Add SameSite cookies to FrameWorkBundle

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes, and added to changelog https://github.com/symfony/symfony/pull/28168/files#diff-276f5b13978c2ce3f555b9603f44801aR21
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #27631
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/10202

Uses `session.cookie_samesite` for PHP >= 7.3. For PHP < 7.3 it first
does a session_start(), find the emitted header, changes it, and emits
it again with the value for SameSite added.

I also tried it in a minimal Symfony 4.1 app, and works there too:

![screenshot from 2018-08-08 21-39-10](https://user-images.githubusercontent.com/1059790/43864708-b7437978-9b60-11e8-81dd-b41f1a5afb52.png)

Commits
-------

4091feb693 Add SameSite cookies to FrameWorkBundle
2018-09-04 10:27:39 +02:00
Nicolas Grekas
0a1220fd96 [Cache] leverage Contracts\Cache 2018-09-04 09:24:06 +02:00
Nicolas Grekas
255455430a [HttpKernel][FrameworkBundle] Fix escaping of serialized payloads passed to test clients 2018-09-04 08:39:37 +02:00
Nyholm
b1aa0047fd Only use the default translator if intl extension is loaded 2018-09-04 07:44:12 +02:00
Nyholm
597a15d7f7 Use FallbackFormatter instead of support for multiple formatters 2018-09-04 00:13:52 +02:00
Nyholm
a325a443ed Allow config for different domain specific formatters 2018-09-04 00:13:51 +02:00
Abdellatif Ait boudad
c2b3dc0a90 [Translation] Added intl message formatter. 2018-09-03 23:02:14 +02:00
Fabien Potencier
59fad59886 feature #28210 [Contracts] Add Translation\TranslatorInterface + decouple symfony/validator from symfony/translation (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Contracts] Add Translation\TranslatorInterface + decouple symfony/validator from symfony/translation

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

Let's decouple Validator from Translation component \o/!

TODO:
- [x] add `TranslatorInterface`, deprecate it from Translation
- [x] add `TranslatorTrait`, deprecating `MessageSelector`, `Internal` and `PluralizationRules`
- [x] deprecate `ValidatorBuilderInterface(LegacyTranslatorInterface)`
- [x] inject a new `identity_translator` into `translator.formatter.default`, deprecate `translator.selector`
- [x] copy tests in the Contracts namespace to ensure the `TranslatorTrait` behaves properly
- [x] figure out a way to keep throwing `InvalidArgumentException` from the component
- [x] update UPGRADING and CHANGELOG files
- [x] polish the deprecation layer (ensure all needed runtime deprecations are here)

Reviews welcome already.

Commits
-------

064e369e06 [Contracts] Add Translation\TranslatorInterface + decouple symfony/validator from symfony/translation
2018-09-03 22:20:47 +02:00
Fabien Potencier
19e5218c0b feature #28331 [FrameworkBundle] Don't populate fallback cache on warmup (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[FrameworkBundle] Don't populate fallback cache on warmup

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

Since we populate the front PhpArrayCache, there is no need to also populate its fallback pool, since it will never be hit for the warmed up values.
This saves creating a myriad of small cache files and some MB.

Commits
-------

c857ba5ded [FrameworkBundle] Don't populate fallback cache on warmup
2018-09-03 22:16:15 +02:00
Nicolas Grekas
064e369e06 [Contracts] Add Translation\TranslatorInterface + decouple symfony/validator from symfony/translation 2018-09-03 15:19:33 +02:00
Samuel ROZE
6b8e6ce73a Merge branch '4.1'
* 4.1:
  Use the real image URL for the filesystem tests
  [Finder] Update PHPdoc append()
  [DI] Fix phpdoc
  Fix code examples in PHPDoc
  [HttpKernel] Fix inheritdocs
  bumped Symfony version to 3.4.16
  updated VERSION for 3.4.15
  updated CHANGELOG for 3.4.15
2018-09-02 18:48:09 +01:00
Samuel ROZE
e2107d24e2 Merge branch '3.4' into 4.1
* 3.4:
  Use the real image URL for the filesystem tests
  [Finder] Update PHPdoc append()
  [DI] Fix phpdoc
  Fix code examples in PHPDoc
  [HttpKernel] Fix inheritdocs
  bumped Symfony version to 3.4.16
  updated VERSION for 3.4.15
  updated CHANGELOG for 3.4.15
2018-09-02 18:33:37 +01:00
Nicolas Grekas
aa13bfdde0 Merge branch '2.8' into 3.4
* 2.8:
  Use the real image URL for the filesystem tests
  [Finder] Update PHPdoc append()
  [DI] Fix phpdoc
  Fix code examples in PHPDoc
  [HttpKernel] Fix inheritdocs
2018-09-02 19:11:59 +02:00
Samuel ROZE
1ba2d57bf5 Merge branch '4.1'
* 4.1:
  FrameworkBundle 4.1 == Messenger 4.1
  Revert "Move commands-specifics to a compiler pass in FWB"
2018-09-02 17:22:25 +01:00
Samuel ROZE
aaada7bf55 FrameworkBundle 4.1 == Messenger 4.1 2018-09-02 16:47:21 +01:00
Samuel ROZE
fb3f729d64 Revert "Move commands-specifics to a compiler pass in FWB"
This reverts commit b5415ead46.
2018-09-02 16:06:12 +01:00
Samuel ROZE
37920e1499 Change the moved pass to match the expected arguments 2018-09-01 18:54:58 +01:00
Samuel ROZE
3833f8816d Merge branch '4.1'
* 4.1:
  Move commands-specifics to a compiler pass in FWB
  bumped Symfony version to 4.1.5
  updated VERSION for 4.1.4
  updated CHANGELOG for 4.1.4
  [travis] disable symfony/flex during phpunit install
2018-09-01 18:54:47 +01:00
Samuel ROZE
b5415ead46 Move commands-specifics to a compiler pass in FWB 2018-09-01 18:39:06 +01:00
Nicolas Grekas
c857ba5ded [FrameworkBundle] Don't populate fallback cache on warmup 2018-09-01 18:33:14 +02:00
Dany Maillard
1afb043dc5 Fix code examples in PHPDoc 2018-08-29 15:11:53 +02:00
Remon van de Kamp
4091feb693
Add SameSite cookies to FrameWorkBundle
Uses `session.cookie_samesite` for PHP >= 7.3. For PHP < 7.3 it first
does a session_start(), find the emitted header, changes it, and emits
it again with the value for SameSite added.
2018-08-28 20:18:28 +02:00
Samuel ROZE
e3f1eecbc1 Bus argument is a required option when multiple buses are defined 2018-08-28 11:10:33 +02:00
Robin Chalas
539cb62ffe [Messenger] Add a --bus option to the messenger:consume-messages command 2018-08-28 11:09:59 +02:00
Fabien Potencier
4edbd60bbb feature #28243 [FrameworkBundle] Deprecate Symfony\Bundle\FrameworkBundle\Controller\Controller (sroze)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[FrameworkBundle] Deprecate `Symfony\Bundle\FrameworkBundle\Controller\Controller`

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

Time to deprecate `Controller`, youpi !! 🎉

Commits
-------

a7e319d9e1 Deprecate `Symfony\Bundle\FrameworkBundle\Controller\Controller`
2018-08-28 08:35:15 +02:00
Gordon Franke
5fc6155225 [FrameworkBundle] add class description to debug:container command 2018-08-27 21:17:33 +02:00
Samuel ROZE
a7e319d9e1 Deprecate Symfony\Bundle\FrameworkBundle\Controller\Controller 2018-08-27 19:13:10 +01:00
Nicolas Grekas
4f7b41a83d [FrameworkBundle] Added new "auto" mode for framework.session.cookie_secure to turn it on when https is used 2018-08-27 18:13:55 +02:00
Nicolas Grekas
c0b8f53bcb [DI] Allow autowiring by type + parameter name 2018-08-23 11:47:19 +02:00
Nicolas Grekas
3063c62bba Merge branch '4.1'
* 4.1:
  [travis] fix composer.lock invalidation for deps=low
  [Security\Http] Restore laziness of listener iterator
  Make the `message_bus` alias public
2018-08-19 10:17:45 +02:00
Samuel ROZE
51b6e9eb96 Make the message_bus alias public 2018-08-17 14:07:19 +02:00
Nicolas Grekas
0934464993 feature #28176 [DI] [FrameworkBundle] Add LoggerAwareInterface to auto configuration (GaryPEGEOT)
This PR was squashed before being merged into the 4.2-dev branch (closes #28176).

Discussion
----------

[DI] [FrameworkBundle] Add LoggerAwareInterface to auto configuration

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

Add the method call `setLogger` for every service implementing `Psr\Log\LoggerAwareInterface`

Commits
-------

afda3c8844 [DI] [FrameworkBundle] Add LoggerAwareInterface to auto configuration
2018-08-14 17:12:50 +02:00
Gary PEGEOT
afda3c8844 [DI] [FrameworkBundle] Add LoggerAwareInterface to auto configuration 2018-08-14 17:12:26 +02:00
ProgMiner
24471a2780 [Config] Rename FileLoaderLoadException to LoaderLoadException 2018-08-10 09:13:17 +02:00
Nicolas Grekas
1f629c8789 Merge branch '4.1'
* 4.1:
  [HttpKernel] Fixed invalid REMOTE_ADDR in inline subrequest when configuring trusted proxy with subnet
  [FrameworkBundle] fixed guard event names for transitions
  [DI] Improve class named servics error message
  remove unnecessary instanceof in MongoDbSessionHandler
  [HttpFoundation] fixed using _method parameter with invalid type
  Renaming internal test class to help auto-completion
  [Intl] Replace svn with git in the icu data update script
  [Messenger] Fix error message on undefined message class for non-subscriber handler
  [HttpFoundation] Fix Cookie::isCleared
2018-08-01 10:24:20 +02:00
Nicolas Grekas
1d3f835e05 Merge branch '4.0' into 4.1
* 4.0:
  [HttpKernel] Fixed invalid REMOTE_ADDR in inline subrequest when configuring trusted proxy with subnet
  [FrameworkBundle] fixed guard event names for transitions
  [DI] Improve class named servics error message
  [HttpFoundation] fixed using _method parameter with invalid type
  [Intl] Replace svn with git in the icu data update script
  [HttpFoundation] Fix Cookie::isCleared
2018-08-01 10:24:03 +02:00
Nicolas Grekas
e0ce427aef Merge branch '3.4' into 4.0
* 3.4:
  [HttpKernel] Fixed invalid REMOTE_ADDR in inline subrequest when configuring trusted proxy with subnet
  [FrameworkBundle] fixed guard event names for transitions
  [DI] Improve class named servics error message
  [HttpFoundation] fixed using _method parameter with invalid type
  [Intl] Replace svn with git in the icu data update script
  [HttpFoundation] Fix Cookie::isCleared
2018-08-01 10:23:45 +02:00
Ivan Nikolaev
9bbb1e5cff [FrameworkBundle] fixed guard event names for transitions 2018-07-29 17:24:21 +02:00
Nicolas Grekas
510977dd19 Merge branch '4.1'
* 4.1:
  Enable native_constant_invocation CS fixer
2018-07-26 13:25:51 +02:00
Nicolas Grekas
c4d10c4d4d Merge branch '4.0' into 4.1
* 4.0:
  Enable native_constant_invocation CS fixer
2018-07-26 13:24:31 +02:00
Nicolas Grekas
b5143233d2 Merge branch '3.4' into 4.0
* 3.4:
  Enable native_constant_invocation CS fixer
2018-07-26 13:22:46 +02:00
Nicolas Grekas
f569f58b66 Merge branch '2.8' into 3.4
* 2.8:
  Enable native_constant_invocation CS fixer
2018-07-26 13:19:56 +02:00
Nicolas Grekas
2ba0fa4a14 Enable native_constant_invocation CS fixer 2018-07-26 13:13:39 +02:00
Nicolas Grekas
f834c9262b Merge branch '4.1'
* 4.1:
  Alpha-ordering for "use" statements
2018-07-26 11:13:01 +02:00
Nicolas Grekas
a23a4a4398 Merge branch '4.0' into 4.1
* 4.0:
  Alpha-ordering for "use" statements
2018-07-26 11:10:45 +02:00
Nicolas Grekas
6b7e951fdc Merge branch '3.4' into 4.0
* 3.4:
  Alpha-ordering for "use" statements
2018-07-26 11:08:35 +02:00
Nicolas Grekas
7b80bc2c78 Merge branch '2.8' into 3.4
* 2.8:
  Alpha-ordering for "use" statements
2018-07-26 11:06:28 +02:00
Nicolas Grekas
528eef336b Alpha-ordering for "use" statements 2018-07-26 11:03:18 +02:00
Nicolas Grekas
e81285249b Merge branch '4.1'
* 4.1:
  Fix Clidumper tests
  Enable the fixer enforcing fully-qualified calls for compiler-optimized functions
  Apply fixers
  Disable the native_constant_invocation fixer until it can be scoped
  Update the list of excluded files for the CS fixer
2018-07-26 10:59:12 +02:00
Nicolas Grekas
933b774844 Merge branch '4.0' into 4.1
* 4.0:
  Fix Clidumper tests
  Enable the fixer enforcing fully-qualified calls for compiler-optimized functions
  Apply fixers
  Disable the native_constant_invocation fixer until it can be scoped
  Update the list of excluded files for the CS fixer
2018-07-26 10:55:25 +02:00
Nicolas Grekas
b9433001cb Merge branch '3.4' into 4.0
* 3.4:
  Fix Clidumper tests
  Enable the fixer enforcing fully-qualified calls for compiler-optimized functions
  Apply fixers
  Disable the native_constant_invocation fixer until it can be scoped
  Update the list of excluded files for the CS fixer
2018-07-26 10:51:09 +02:00
Nicolas Grekas
f5939a8336 Merge branch '2.8' into 3.4
* 2.8:
  Fix Clidumper tests
  Enable the fixer enforcing fully-qualified calls for compiler-optimized functions
  Apply fixers
  Disable the native_constant_invocation fixer until it can be scoped
  Update the list of excluded files for the CS fixer
2018-07-26 10:45:46 +02:00
Nicolas Grekas
1730b7d9ef Merge branch '4.1'
* 4.1:
  fix merge
  bumped Symfony version to 4.1.3
  [PhpUnitBridge] Describe weak_vendors properly
  [HttpKernel] Fix merging bindings for controllers' locators
  updated VERSION for 4.1.2
  updated CHANGELOG for 4.1.2
  bumped Symfony version to 4.0.14
  updated VERSION for 4.0.13
  updated CHANGELOG for 4.0.13
  bumped Symfony version to 3.4.14
  updated VERSION for 3.4.13
  updated CHANGELOG for 3.4.13
  bumped Symfony version to 2.8.44
  Chaining senders with their aliases should work
2018-07-26 10:29:03 +02:00
Christophe Coevoet
04654cfeb3 Enable the fixer enforcing fully-qualified calls for compiler-optimized functions 2018-07-24 12:05:38 +02:00
Samuel ROZE
98bb64c32a Chaining senders with their aliases should work 2018-07-23 12:44:09 +02:00
Fabien Potencier
18edda3716 bug #26193 Fix false-positive deprecation notices for TranslationLoader and WriteCheckSessionHandler (iquito)
This PR was squashed before being merged into the 3.4 branch (closes #26193).

Discussion
----------

Fix false-positive deprecation notices for TranslationLoader and WriteCheckSessionHandler

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

Symfony 3.4 emits deprecation warnings for  `TranslationLoader` and `WriteCheckSessionHandler` as soon as these classes are loaded, yet at the same time these classes are part of the default services defined in Symfony 3.4, so if these classes are loaded during container compilation a deprecation warning is emitted, even if these classes are never actually used.

An example would be the following within a compiler pass:

    foreach ($containerBuilder->getDefinitions() as $definition) {
      if (is_subclass_of($definition->getClass(), SomeClass::class)) {
        $definition->addMethodCall('setSomething', [new Reference('someservice')]);
      }
    }

This will load both `TranslationLoader` and `WriteCheckSessionHandler` in order to check their definition.  No instance of the classes are ever used and the classes are not loaded after compilation ever, yet the deprecation notices are shown on every single page. More details are provided in issue #25518 .

By moving the deprecation notices to the class constructors false-positives are avoided while actual usage of the classes should still generate the deprecation warnings.

Commits
-------

1a427b181d Fix false-positive deprecation notices for TranslationLoader and WriteCheckSessionHandler
2018-07-19 09:08:28 +02:00
Andreas
1a427b181d Fix false-positive deprecation notices for TranslationLoader and WriteCheckSessionHandler 2018-07-19 09:08:14 +02:00
Fabien Potencier
01c65c868e bug #27968 [FrameworkBundle] add missing XSD entry for taggable cache pools (xabbuh)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[FrameworkBundle] add missing XSD entry for taggable cache pools

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

Commits
-------

d59cf7756c add missing XSD entry for taggable cache pools
2018-07-16 16:46:17 +02:00
Fabien Potencier
f6c5c85042 bug #27950 [FrameworkBundle] fix compatibility with older Cache versions (xabbuh)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[FrameworkBundle] fix compatibility with older Cache versions

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

FrameworkBundle 4.2 will be compatible with older versions of the Cache
component. In those versions adapters don't implement `ResetInterface`.
For backwards compatibility they still need to be tagged.

Commits
-------

ec795cca78 fix compatibility with older Cache versions
2018-07-16 16:35:19 +02:00
Christian Flothmann
d59cf7756c add missing XSD entry for taggable cache pools 2018-07-16 16:34:58 +02:00
Fabien Potencier
18ba2a81a7 Merge branch '4.1'
* 4.1:
  fixed typo
  [FrameworkBundle] fixed brackets position in method calls
  Add placeholder support in bootstrap 4 file fields
  [Form] Improve rendering of `file` field in bootstrap 4
  [Form] Fix PHPDoc for FormConfigBuilder $dataClass argument
  [Security] Update user phpdoc on tokens
  [WebProfilerBundle] Fixed icon alignment issue using Bootstrap 4.1.2
  suppress side effects in 'get' or 'has' methods of NamespacedAttributeBag
  [HttpFoundation] reset callback on StreamedResponse when setNotModified() is called
  [HttpFoundation] Fixed phpdoc for get method of HeaderBag
  fix typo in ContainerBuilder docblock
  [Form/Profiler] Massively reducing memory footprint of form profiling pages by removing redundant 'form' variable from view variables.
  [Console] correctly return parameter's default value on "--"
  [DependencyInjection] add missing test for #27710
  [EventDispatcher] Clear orphaned events on TraceableEventDispatcher::reset
  Fix serialization of abstract items with groups across multiple entities
2018-07-16 16:05:48 +02:00
Fabien Potencier
6fd9d54e95 Merge branch '4.0' into 4.1
* 4.0:
  fixed typo
  [FrameworkBundle] fixed brackets position in method calls
  [Form] Fix PHPDoc for FormConfigBuilder $dataClass argument
  [Security] Update user phpdoc on tokens
  [WebProfilerBundle] Fixed icon alignment issue using Bootstrap 4.1.2
  suppress side effects in 'get' or 'has' methods of NamespacedAttributeBag
  [HttpFoundation] reset callback on StreamedResponse when setNotModified() is called
  [HttpFoundation] Fixed phpdoc for get method of HeaderBag
  fix typo in ContainerBuilder docblock
  [Form/Profiler] Massively reducing memory footprint of form profiling pages by removing redundant 'form' variable from view variables.
  [Console] correctly return parameter's default value on "--"
2018-07-16 16:05:40 +02:00
Fabien Potencier
2afd49ff17 fixed typo 2018-07-16 16:05:32 +02:00
Fabien Potencier
e4f62ea0d2 Merge branch '3.4' into 4.0
* 3.4:
  [FrameworkBundle] fixed brackets position in method calls
  [Form] Fix PHPDoc for FormConfigBuilder $dataClass argument
  [Security] Update user phpdoc on tokens
  [WebProfilerBundle] Fixed icon alignment issue using Bootstrap 4.1.2
  suppress side effects in 'get' or 'has' methods of NamespacedAttributeBag
  [HttpFoundation] reset callback on StreamedResponse when setNotModified() is called
  [HttpFoundation] Fixed phpdoc for get method of HeaderBag
  fix typo in ContainerBuilder docblock
  [Form/Profiler] Massively reducing memory footprint of form profiling pages by removing redundant 'form' variable from view variables.
  [Console] correctly return parameter's default value on "--"
2018-07-16 15:59:46 +02:00
Ivan Nikolaev
b5863bc7e8 [FrameworkBundle] fixed brackets position in method calls 2018-07-16 15:56:13 +02:00
Christian Flothmann
ec795cca78 fix compatibility with older Cache versions
FrameworkBundle 4.2 will be compatible with older versions of the Cache
component. In those versions adapters don't implement `ResetInterface`.
For backwards compatibility they still need to be tagged.
2018-07-14 10:12:57 +02:00
Fabien Potencier
682836da9c renamed Contract to Contracts 2018-07-13 19:06:58 +02:00
Fabien Potencier
1e16a8b979 feature #27093 Add symfony/contracts: a set of abstractions extracted out of the Symfony components (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

Add symfony/contracts: a set of abstractions extracted out of the Symfony components

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

A set of abstractions extracted out of the Symfony components.

This is a topic I've been thinking about for a long time. I feel like the time has come for Symfony to publish some abstractions so that people could build on them in a decoupled way.
I've identified interfaces in some components that would greatly benefit from being moved out from the components where they are for now. E.g. #26929 is something that has a broader scope than the Cache component itself.

By putting them in a new `symfony/abstractions` package, we would allow more innovation in the Symfony community, at the abstraction level.

In order to start small, I propose only one interface that gathers a concept that is shared amongst many components already: `ResetInterface`. It would provide a standard `reset()` method, whose purpose is to set an object back to its initial state, allowing it to be reused many times with no side effects/leaks related to its history. By this definition, it could also be autoconfigured (as done here, see update in FrameworkExtension). See wording in the docblock in the attached source code.

Ideally, I'd like this package to provide not only interfaces, by also generic traits, and reference test suites when possible. We could work on adding more abstractions during the 4.2 cycle. WDYT?

## Here is the attached README:

A set of abstractions extracted out of the Symfony components.

Can be used to build on semantics that the Symfony components proved useful - and
that already have battle tested implementations.

Design Principles
-----------------

 * contracts are split by domain, each into their own sub-namespaces;
 * contracts are small and consistent sets of PHP interfaces, traits, normative
   docblocks and reference test suites when applicable, etc.;
 * all contracts must have a proven implementation to enter this repository;
 * they must be backward compatible with existing Symfony components.

FAQ
---

### How to use this package?

The abstractions in this package are useful to achieve loose coupling and
interoperability. By using the provided interfaces as type hints, you are able
to reuse any implementations that match their contracts. It could be a Symfony
component, or another one provided by the PHP community at large.

Depending on their semantics, some interfaces can be combined with autowiring to
seamlessly inject a service in your classes.

Others might be useful as labeling interfaces, to hint about a specific behavior
that could be enabled when using autoconfiguration or manual service tagging (or
any other means provided by your framework.)

### How is this different from PHP-FIG's PSRs?

When applicable, the provided contracts are built on top of PHP-FIG's PSR. We
encourage relying on them and won't duplicate the effort. Still, the FIG has
different goals and different processes. Here, we don't need to seek universal
standards. Instead, we're providing abstractions that are compatible with the
implementations provided by Symfony. This should actually also contribute
positively to the PHP-FIG (from which Symfony is a member), by hinting the group
at some abstractions the PHP world might like to take inspiration from.

### Why isn't this package split into several packages?

Putting all interfaces in one package eases discoverability and dependency
management. Instead of dealing with a myriad of small packages and the
corresponding matrix of versions, you just need to deal with one package and one
version. Also when using IDE autocompletion or just reading the source code, it
makes it easier to figure out which contracts are provided.

There are two downsides to this approach: you may have unused files in your
`vendor/` directory, and in the future, it will be impossible to use two
different sub-namespaces in different major versions of the package. For the
"unused files" downside, it has no practical consequences: their file sizes are
very small, and there is no performance overhead at all since they are never
loaded. For major versions, this package follows the Symfony BC + deprecation
policies, with an additional restriction to never remove deprecated interfaces.

Resources
---------

  * [Documentation](https://symfony.com/doc/current/components/contracts.html)
  * [Contributing](https://symfony.com/doc/current/contributing/index.html)
  * [Report issues](https://github.com/symfony/symfony/issues) and
    [send Pull Requests](https://github.com/symfony/symfony/pulls)
    in the [main Symfony repository](https://github.com/symfony/symfony)

Commits
-------

898203649f Added symfony/contracts: a set of abstractions extracted out of the components
2018-07-13 13:25:15 +02:00
Alexis BOYER
137593ec80 [FrameworkBundle] Cmd TranslationUpdate change default output to xlf 2018-07-12 15:55:50 +02:00
Nicolas Grekas
898203649f Added symfony/contracts: a set of abstractions extracted out of the components 2018-07-11 10:17:42 +02:00
Nicolas Grekas
1d9f1d1b70 [ProxyManagerBridge][DI] allow proxifying interfaces with "lazy: Some\ProxifiedInterface" 2018-07-09 16:45:45 +02:00
Fabien Potencier
f20eaf26c2 feature #27645 [Cache] Add MarshallerInterface allowing to change the serializer, providing a default one that automatically uses igbinary when available (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Cache] Add `MarshallerInterface` allowing to change the serializer, providing a default one that automatically uses igbinary when available

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

With this PR, when igbinary is available, it is automatically used to serialize values.
This provides faster and smaller cache payloads.
The unserializing logic is autoadaptative:
- when an igbinary-serialized value is unserialized but the extension is missing, a cache miss is triggered
- when a natively-serialized value is unserialized and the extension is available, the native `unserialize()` is used

Ping @palex-fpt since you provided very useful comments on the topic and might be interested in reviewing here also.

Commits
-------

9c328c4894 [Cache] Add `MarshallerInterface` allowing to change the serializer, providing a default one that automatically uses igbinary when available
2018-07-09 16:39:33 +02:00
Fabien Potencier
cbda6a3c72 feature #27694 [FrameworkBundle][Cache] Allow configuring PDO-based cache pools, with table auto-creation on first use (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[FrameworkBundle][Cache] Allow configuring PDO-based cache pools, with table auto-creation on first use

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

* Allowed configuring PDO-based cache pools via a new `cache.adapter.pdo` abstract service
* added automatic table creation when using Doctrine DBAL with PDO-based backends

Commits
-------

1484117430 [FrameworkBundle][Cache] Allow configuring PDO-based cache pools, with table auto-creation on first use
2018-07-09 16:21:08 +02:00
Fabien Potencier
254f4c8f7f feature #27774 [FrameworkBundle] allow turning routes to utf8 mode by default (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[FrameworkBundle] allow turning routes to utf8 mode by default

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

This allows building optimized routers that match in a single regexp instead of an alternate of utf8/non-utf8 set of routes.

Commits
-------

8f359cc047 [FrameworkBundle] allow turning routes to utf8 mode by default
2018-07-09 16:14:24 +02:00
Christian Flothmann
a3845c7d6e improve deprecation messages 2018-07-08 21:14:58 +02:00
Nicolas Grekas
9c328c4894 [Cache] Add MarshallerInterface allowing to change the serializer, providing a default one that automatically uses igbinary when available 2018-07-08 10:55:08 +02:00
Nicolas Grekas
24babca889 fix the fix 2018-07-08 10:53:18 +02:00
Nicolas Grekas
d8a66d691f [FrameworkBundle] fix lowest deps 2018-07-08 10:25:11 +02:00
Nicolas Grekas
ffab7d6d68 Merge branch '4.1'
* 4.1:
  [Console] fix CS
  [OptionResolver] resolve arrays
  [TwigBridge] Fix missing path and separators in loader paths list on debug:twig output
  [PropertyInfo] Fix dock block lookup fallback loop
  [FrameworkBundle] Fixed phpdoc in MicroKernelTrait::configureRoutes()
  [HttpFoundation] don't encode cookie name for BC
  improve deprecation messages
  minor #27858 [Console] changed warning verbosity; fixes typo (adrian-enspired)
  AppBundle->App.
  [Workflow] Fixed BC break
  [DI] Fix dumping ignore-on-uninitialized references to synthetic services
2018-07-07 18:01:39 +02:00
Nicolas Grekas
1484117430 [FrameworkBundle][Cache] Allow configuring PDO-based cache pools, with table auto-creation on first use 2018-07-07 17:46:19 +02:00
Nicolas Grekas
18c2dde08e feature #27519 [HttpKernel][FrameworkBundle] Turn HTTP exceptions to HTTP status codes by default (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[HttpKernel][FrameworkBundle] Turn HTTP exceptions to HTTP status codes by default

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

When an exception is thrown, *if it is not handled* then it will be reinjected as a 2nd exception event via `HttpKernel::terminateWithException()`. When this happens, this will generate a proper HTTP status code.

Commits
-------

80b0739fc2 [HttpKernel][FrameworkBundle] Turn HTTP exceptions to HTTP status codes by default
2018-07-07 17:40:43 +02:00
Nicolas Grekas
6d3f63d6f3 feature #27783 [DI] Add ServiceLocatorArgument to generate array-based locators optimized for OPcache shared memory (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[DI] Add ServiceLocatorArgument to generate array-based locators optimized for OPcache shared memory

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

Right now, to generate service locators, we use collections of closures described using `ServiceClosureArgument`. This works well, but it doesn't scale well when the number of services grows, because we have to load as many closures as there are services, even if we never call them.

This PR introduces `ServiceLocatorArgument`, which describes the same thing, but allows dumping optimized locators: instead of a collection of closures, this generates a static array that OPcache can put in shared memory (see fixtures for example.)

Once this PR is merged, we'll be able to update `ServiceLocatorPass::register()` to leverage it and generate these optimized locators everywhere. One particular I have in mind in the locator used by `ServiceArgumentResolver`, which can grow fast (it has as many entries as there are actions.)

Commits
-------

6c8e9576a3 [DI] Add ServiceLocatorArgument to generate array-based locators optimized for OPcache shared memory
2018-07-07 17:01:23 +02:00
Valentin
948c841acf [FrameworkBundle] Fixed phpdoc in MicroKernelTrait::configureRoutes() 2018-07-07 16:31:37 +02:00
Nicolas Grekas
8f359cc047 [FrameworkBundle] allow turning routes to utf8 mode by default 2018-07-06 10:08:17 +02:00
Nicolas Grekas
7135aa4338 Merge branch '4.1'
* 4.1:
  [DomCrawler] Fix ChoiceFormField::select() PHPDoc
  [Security] LdapUserProvider uidKey could be null
  [HttpFoundation] add tests for FlashBagInterface::setAll()
  Check for Hyper terminal on all operating systems.
  [DI] Don't show internal service id on binding errors
  Fix a bug when having more than one named handler per message subscriber
  Prevent toolbar links color override by css
  add conflict for non-compatible TwigBridge version
2018-07-05 13:54:37 +02:00
Nicolas Grekas
0fbcfbd9a3 minor #27719 [FrameworkBundle] add conflict for non-compatible TwigBridge version (xabbuh)
This PR was merged into the 4.1 branch.

Discussion
----------

[FrameworkBundle] add conflict for non-compatible TwigBridge version

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

The argument was dropped in #27454.

Commits
-------

251e684fe6 add conflict for non-compatible TwigBridge version
2018-07-04 17:45:01 +02:00
Nicolas Grekas
6c8e9576a3 [DI] Add ServiceLocatorArgument to generate array-based locators optimized for OPcache shared memory 2018-07-04 16:01:49 +02:00
Nicolas Grekas
28a4912f21 [MonologBridge] Add ProcessorInterface, enabling autoconfiguration of monolog processors 2018-07-03 09:26:27 +02:00
Nicolas Grekas
adb137d5c1 Merge branch '4.1'
* 4.1:
  [Routing] Disallow object usage inside Route
  [HttpFoundation] missing namespace for RedisProxy
  [Routing] fix too much greediness in host-matching regex
  [HttpFoundation] fix registration of session proxies
  failing test to reproduce session problem
  [HttpFoundation] fix session tracking counter
2018-06-28 08:35:46 +02:00
Nicolas Grekas
223cf06121 Merge branch '4.0' into 4.1
* 4.0:
  [HttpFoundation] fix registration of session proxies
  failing test to reproduce session problem
  [HttpFoundation] fix session tracking counter
2018-06-28 08:35:31 +02:00
Nicolas Grekas
9aecd2b436 Merge branch '3.4' into 4.0
* 3.4:
  [HttpFoundation] fix registration of session proxies
  failing test to reproduce session problem
  [HttpFoundation] fix session tracking counter
2018-06-28 08:35:12 +02:00
Nicolas Grekas
80b0739fc2 [HttpKernel][FrameworkBundle] Turn HTTP exceptions to HTTP status codes by default 2018-06-28 07:28:35 +02:00
David Maicher
89ed756462 failing test to reproduce session problem 2018-06-27 13:46:59 +02:00
Christian Flothmann
251e684fe6 add conflict for non-compatible TwigBridge version 2018-06-26 09:38:32 +02:00
Fabien Potencier
21a3439a29 feature #27476 [Config] deprecate tree builders without root nodes (xabbuh)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Config] deprecate tree builders without root nodes

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

While reviewing #27472 I wondered if we really need support config trees without a root node. If we did not support it, users wouldn't create pseudo configuration classes when they were actually not needed.

Commits
-------

c2ce15301c deprecate tree builders without root nodes
2018-06-25 19:06:32 +02:00
Fabien Potencier
86361e58a6 feature #27247 [Form] Deprecate searchAndRenderBlock returning empty string (ostrolucky)
This PR was squashed before being merged into the 4.2-dev branch (closes #27247).

Discussion
----------

[Form] Deprecate `searchAndRenderBlock` returning empty string

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

I would like to remove this silent behavior, because it's confusing

Commits
-------

02f2f0ed39 [Form] Deprecate `searchAndRenderBlock` returning empty string
2018-06-25 08:48:10 +02:00
Gabriel Ostrolucký
02f2f0ed39 [Form] Deprecate searchAndRenderBlock returning empty string 2018-06-25 08:47:55 +02:00
Nicolas Grekas
31fc855e22 Merge branch '4.1'
* 4.1:
  [Lock] use 'r+' for fopen (fixes issue on Solaris)
  [HttpKernel] fix test compat with PHP 5.3
  fix handling of nested Error instances
  fix file lock on SunOS
  Ignore keepQueryParams attribute when generating route redirect.
  [Cache] more granular handling of exceptions in AbstractTrait::clear()
  change `evaluate()` docblock return type from string to mixed
  Set serialize_precision explicitly to avoid fancy float rounding
2018-06-21 13:18:49 +02:00
Valentin
1e10475d88 Ignore keepQueryParams attribute when generating route redirect. 2018-06-21 00:41:56 +03:00
Nicolas Grekas
a5a91d318c Merge branch '4.1'
* 4.1:
  [HttpKernel] fix PHP 5.4 compat
  Fix surrogate not using original request
  [Finder] Update RealIteratorTestCase
  [Routing] remove unneeded dev dep on doctrine/common
  [minor] SCA
  [Validator] Remove BOM in some xlf files
  Ensure updateTimestamp returns a boolean
  Fix #27378: Error when rendering a DateIntervalType form with exactly 0 weeks
  [HttpKernel] fix session tracking in surrogate master requests
2018-06-19 23:38:29 +02:00
Nicolas Grekas
34acfe4bfb Merge branch '4.0' into 4.1
* 4.0:
  [HttpKernel] fix PHP 5.4 compat
  Fix surrogate not using original request
  [Finder] Update RealIteratorTestCase
  [Routing] remove unneeded dev dep on doctrine/common
  [minor] SCA
  [Validator] Remove BOM in some xlf files
  Fix #27378: Error when rendering a DateIntervalType form with exactly 0 weeks
  [HttpKernel] fix session tracking in surrogate master requests
2018-06-19 23:38:16 +02:00
Nicolas Grekas
b85f70e3bc Merge branch '3.4' into 4.0
* 3.4:
  [HttpKernel] fix PHP 5.4 compat
  Fix surrogate not using original request
  [Finder] Update RealIteratorTestCase
  [Routing] remove unneeded dev dep on doctrine/common
  [minor] SCA
  [Validator] Remove BOM in some xlf files
  Fix #27378: Error when rendering a DateIntervalType form with exactly 0 weeks
  [HttpKernel] fix session tracking in surrogate master requests
2018-06-19 22:54:48 +02:00
Nicolas Grekas
a4f5c6e2b6 minor #27643 [FrameworkBundle] Fixed tests added in #27611 (HeahDude)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[FrameworkBundle] Fixed tests added in #27611

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

be97006c57 [FrameworkBundle] Fixed tests added in #27611
2018-06-19 22:33:37 +02:00
Jules Pietri
be97006c57 [FrameworkBundle] Fixed tests added in #27611 2018-06-19 19:13:47 +02:00
Nicolas Grekas
4fde3bb4f3 feature #27421 CacheWarmerAggregate handle deprecations logs (ScullWM)
This PR was merged into the 4.2-dev branch.

Discussion
----------

CacheWarmerAggregate handle deprecations logs

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #27387
| License       | MIT

Actually the Web Debug Toolbar warning you about the deprecation messages thrown during the container built (#21502).
Cache warmup can throw deprecated message without any persistance, it may cause issue like #27387
This PR reproduce the same job for the cache warmer, and so on, handle deprecated messages during the warmup of Twig, Translator, Validator, Security and all `kernel.cache_warmer` services.

Here are the point that may be improvable in this PR:

1.  Actually I've "duplicate" the callable used in the `set_error_handler` of the Kernel.
IMHO I think that Kernel and CacheWarmerAggregate have differents jobs and a trait may be a good solution to share this error handler setter without duplicating the code, but I'm a little bit lost about the repercussion of adding a Trait in the Kernel.

2. I've think about extending the `CacheWarmerAggregate` into a `DeprecatedLogHandlingCacheWarmerAggregate` to add the debug and containerClass argument, and declare it as the `cache_warmer` service only in debug mode (by declaring it in the DebugBundle/Resources/config/services.xml).

Commits
-------

f03b8bba9d CacheWarmerAggregate handle deprecations logs
2018-06-19 15:15:00 +02:00
Nicolas Grekas
e9e6ec54af feature #27611 [FrameworkBundle][SecurityBundle] Moved security expression providers pass logic to SecurityBundle (HeahDude)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[FrameworkBundle][SecurityBundle] Moved security expression providers pass logic to SecurityBundle

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

Commits
-------

a8017be6ae [FrameworkBundle][SecurityBundle] Moved security expression providers pass logic to SecurityBundle
2018-06-19 15:04:04 +02:00
Jules Pietri
a8017be6ae [FrameworkBundle][SecurityBundle] Moved security expression providers pass logic to SecurityBundle 2018-06-19 15:02:06 +02:00
Christian Flothmann
c2ce15301c deprecate tree builders without root nodes 2018-06-19 14:34:32 +02:00
Nicolas Grekas
c6948044c7 feature #27551 [FrameworkBundle] show public/private for aliases in debug:container command (OskarStark)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[FrameworkBundle] show public/private for aliases in debug:container command

| 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 |    <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | not needed <!-- required for new features -->

It could be helpful to see the public/private status for aliases in `debug:container` command.

Otherwise you need to dive into the code to get the information, because the result only shows the options of the aliased service.

## Look & Feel for public alias
![screenshot 2018-06-08 09 25 50](https://user-images.githubusercontent.com/995707/41144664-f3b50766-6afd-11e8-92d0-ca30513a1afc.png)

_text has slightly changed_

## Look & Feel for private alias
![screenshot 2018-06-08 09 23 31](https://user-images.githubusercontent.com/995707/41144593-b354aad2-6afd-11e8-8ab1-f9196e567f67.png)

_text has slightly changed_

//cc @nicolas-grekas

Commits
-------

1df7742345 [FrameworkBundle] show public/private for aliases in debug:container command
2018-06-19 12:57:50 +02:00
Vladimir Reznichenko
5922507dc5 [minor] SCA 2018-06-19 11:31:41 +02:00
Fabien Potencier
c0ca2afbb3 feature #27543 [Cache] serialize objects using native arrays when possible (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Cache] serialize objects using native arrays when possible

| 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 allows leveraging OPCache shared memory when storing objects in `Php*` pool storages (as done by default for all system caches). This improves performance a bit further when loading e.g. annotations, etc. (bench coming);

Instead of using native php serialization, this uses a marshaller that represents objects in plain static arrays. Unmarshalling these arrays is faster than unserializing the corresponding PHP strings (because it works with copy-on-write, while unserialize cannot.)

php-serialization is still a possible format because we have to use it when serializing structures with internal references or with objects implementing `Serializable`. The best serialization format is selected automatically so this is completely seamless.

ping @palex-fpt since you gave me the push to work on this, and are pursuing a similar goal in #27484. I'd be thrilled to get some benchmarks on your scenarios.

Commits
-------

866420e2eb [Cache] serialize objects using native arrays when possible
2018-06-18 17:28:27 +02:00
Robin Chalas
28d754db2c Merge branch '4.0'
* 4.0:
  Fix merge
  [HttpKernel] Fix resetting DumpDataCollector::$isCollected
  [Framework][Workflow] Added support for interfaces
2018-06-18 11:32:54 +02:00
Robin Chalas
15c0d48277 Merge branch '4.0' into 4.1
* 4.0:
  Fix merge
  [HttpKernel] Fix resetting DumpDataCollector::$isCollected
  [Framework][Workflow] Added support for interfaces
2018-06-18 11:31:19 +02:00
Robin Chalas
57fc15bde6 Merge branch '3.4' into 4.0
* 3.4:
  Fix merge
  [HttpKernel] Fix resetting DumpDataCollector::$isCollected
  [Framework][Workflow] Added support for interfaces
2018-06-18 11:30:06 +02:00
Nicolas Grekas
866420e2eb [Cache] serialize objects using native arrays when possible 2018-06-18 10:20:36 +02:00
Oskar Stark
1df7742345 [FrameworkBundle] show public/private for aliases in debug:container command 2018-06-17 22:04:46 +02:00
Valentin Udaltsov
6104c28c08 [Framework][Workflow] Added support for interfaces 2018-06-15 15:02:31 +02:00
Nicolas Grekas
a687119e10 Merge branch '4.1'
* 4.1:
  remove HHVM code
  [VarDumper] Fix dumping ArrayObject and ArrayIterator instances
  [ProxyManagerBridge] Fixed support of private services
  [Cache] Fix typo in comment.
  [FrameworkBundle] give access to non-shared services when using test.service_container
  Fix bad method call with guard authentication + session migration
  Avoid calling eval when there is no script embedded in the toolbar
2018-06-15 09:52:48 +02:00
Nicolas Grekas
ffa79bacc1 bug #27528 [FrameworkBundle] give access to non-shared services when using test.service_container (nicolas-grekas)
This PR was merged into the 4.1 branch.

Discussion
----------

[FrameworkBundle] give access to non-shared services when using test.service_container

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

Commits
-------

516ff5a985 [FrameworkBundle] give access to non-shared services when using test.service_container
2018-06-15 08:49:43 +02:00
Nicolas Grekas
516ff5a985 [FrameworkBundle] give access to non-shared services when using test.service_container 2018-06-14 10:43:49 +02:00
Nicolas Grekas
5c338cc7ab Merge branch '4.1'
* 4.1:
  fix typo
2018-06-11 16:42:15 +02:00
Nicolas Grekas
413af69e1d fix typo 2018-06-11 16:41:45 +02:00
Nicolas Grekas
c997026c91 Merge branch '4.1'
* 4.1:
  fix typo
2018-06-11 16:29:18 +02:00
Nicolas Grekas
fc666f0d80 fix typo 2018-06-11 16:29:01 +02:00
Nicolas Grekas
90afbf73ac Merge branch '4.1'
* 4.1:
  fix deps
  fixed CS
  [FrameworkBundle] fix for allowing single colon controller notation
2018-06-11 15:22:42 +02:00
Fabien Potencier
8b72a6cb20 fixed CS 2018-06-11 15:11:40 +02:00
Nicolas Grekas
51381e530a [Cache] Unconditionally use PhpFilesAdapter for system pools 2018-06-11 09:57:54 +02:00
David Maicher
1680674174 [FrameworkBundle] fix for allowing single colon controller notation 2018-06-09 14:38:46 +02:00
Nicolas Grekas
84ada0c0c1 Merge branch '4.1'
* 4.1:
  [FrameworkBundle] decouple some cache-warmer's test from internal details
  bug #27405 [Cache] TagAwareAdapter should not corrupt memcached connection in ascii mode
  Remove released semaphore
2018-06-09 00:51:43 +02:00
Nicolas Grekas
28af1a62d1 Merge branch '4.0' into 4.1
* 4.0:
  [FrameworkBundle] decouple some cache-warmer's test from internal details
  bug #27405 [Cache] TagAwareAdapter should not corrupt memcached connection in ascii mode
  Remove released semaphore
2018-06-09 00:51:37 +02:00
Nicolas Grekas
a250e67097 Merge branch '3.4' into 4.0
* 3.4:
  [FrameworkBundle] decouple some cache-warmer's test from internal details
  bug #27405 [Cache] TagAwareAdapter should not corrupt memcached connection in ascii mode
  Remove released semaphore
2018-06-09 00:51:16 +02:00
Nicolas Grekas
847abd3ec9 [FrameworkBundle] decouple some cache-warmer's test from internal details 2018-06-09 00:30:30 +02:00
Nicolas Grekas
1b2bd8f419 Merge branch '4.1'
* 4.1:
  [Cache][Security] Use Throwable where possible
  revert #27545
  Update Finder.php
  [FrameworkBundle] remove dead code in CachePoolClearerPass
  Fix security-core cross-dependencies, fixes #27507
  Pass previous exception to FatalErrorException
2018-06-08 11:40:00 +02:00
Nicolas Grekas
302b0d41ee Merge branch '4.0' into 4.1
* 4.0:
  [Cache][Security] Use Throwable where possible
  revert #27545
  Update Finder.php
  [FrameworkBundle] remove dead code in CachePoolClearerPass
  Fix security-core cross-dependencies, fixes #27507
  Pass previous exception to FatalErrorException
2018-06-08 11:39:36 +02:00
Nicolas Grekas
ca48f4c0f0 Merge branch '3.4' into 4.0
* 3.4:
  revert #27545
  Update Finder.php
  [FrameworkBundle] remove dead code in CachePoolClearerPass
  Fix security-core cross-dependencies, fixes #27507
  Pass previous exception to FatalErrorException
2018-06-08 11:39:19 +02:00
Nicolas Grekas
974991f8c6 [FrameworkBundle] remove dead code in CachePoolClearerPass 2018-06-07 23:05:52 +02:00
Stéphan Kochen
725d774a16 Fix security-core cross-dependencies, fixes #27507 2018-06-07 10:54:04 +02:00
Nicolas Grekas
50c4384caf Merge branch '4.1'
* 4.1:
  Revert "bug #26138 [HttpKernel] Catch HttpExceptions when templating is not installed (cilefen)"
2018-06-06 12:57:26 +02:00
Nicolas Grekas
72f7ac0441 Merge branch '4.0' into 4.1
* 4.0:
  Revert "bug #26138 [HttpKernel] Catch HttpExceptions when templating is not installed (cilefen)"
2018-06-06 12:57:03 +02:00
Nicolas Grekas
59cd2777cb Merge branch '3.4' into 4.0
* 3.4:
  Revert "bug #26138 [HttpKernel] Catch HttpExceptions when templating is not installed (cilefen)"
2018-06-06 12:52:25 +02:00
Nicolas Grekas
8ec22e5e88 Merge branch '4.1'
* 4.1:
  [FrameworkBundle] Fix test-container on kernel reboot, revert to returning the real container from Client::getContainer()
  Remove mentions of "beta" in composer.json files
  [DI] Ignore missing tree root nodes on validate
  [WebProfilerBundle] fixed getSession when no session has been set deprecation warnings
  bug #27299 [Cache] memcache connect should not add duplicate entries on sequential calls
  [Router] regression when matching a route
  [FrameworkBundle][SecurityBundle] Remove no-longer necessary Bundle::registerCommands override
  [Routing] Don't reorder past variable-length placeholders
  [DebugBundle] DebugBundle::registerCommands should be noop
  [BrowserKit] Fix a BC break in Client affecting Panthère
  [DX] Improve exception message when AbstractController::getParameter fails
  simple-phpunit: remove outdated appveryor workaround
2018-06-06 11:59:09 +02:00
Nicolas Grekas
c9118b9f29 Merge branch '4.0' into 4.1
* 4.0:
  Remove mentions of "beta" in composer.json files
  bug #27299 [Cache] memcache connect should not add duplicate entries on sequential calls
  simple-phpunit: remove outdated appveryor workaround
2018-06-06 11:58:49 +02:00
Nicolas Grekas
c6acad719d Revert "bug #26138 [HttpKernel] Catch HttpExceptions when templating is not installed (cilefen)"
This reverts commit b213c5a758, reversing
changes made to 61af0e3a25.
2018-06-06 11:42:07 +02:00
Fabien Potencier
6770630cee bug #27501 [FrameworkBundle] Fix test-container on kernel reboot, revert to returning the real container from Client::getContainer() (nicolas-grekas)
This PR was merged into the 4.1 branch.

Discussion
----------

[FrameworkBundle] Fix test-container on kernel reboot, revert to returning the real container from Client::getContainer()

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

By making `Client::getContainer()` return the new test container, we broke BC, as spotted in linked issue.

Always use `static::$container` in your tests instead.

While reverting to returning the real container, I noticed we have a serious design issue in the way the test container currently works: because the kernel can be rebooted, we cannot inject the container directly, but have to go through the kernel all the time. Fixing this forces doing a BC break on the constructor of `TestContainer`. Since this is a new class and since it's mostly internal, I think we should do it now. I've marked the class as internal to further strengthen this.

Commits
-------

6764d4e012 [FrameworkBundle] Fix test-container on kernel reboot, revert to returning the real container from Client::getContainer()
2018-06-06 10:11:09 +02:00
Thomas Perez
f03b8bba9d CacheWarmerAggregate handle deprecations logs 2018-06-06 00:11:23 +02:00
Tobias Schultze
d8739d183e feature #27471 [DI] Improve performance of removing/inlining passes (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[DI] Improve performance of removing/inlining passes

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

Here is an optimization to reclaim some compilation time by optimizing the analysis of unused and inlined services.

This PR removes any use case for `RepeatedPass`, instead:
- `RemoveUnusedDefinitionsPass` works in one run, removing all private services that are unreachable from public services
-  `InlineServiceDefinitionsPass` reduces the number of nodes to analyze per iteration using `AnalyzeServiceReferencesPass` on a duplicated container internally.

https://blackfire.io/profiles/compare/00723822-6c09-431c-b98d-4a4197d044fc/graph?settings%5Bdimension%5D=wt&settings%5Bdisplay%5D=focused&settings%5BtabPane%5D=nodes&selected=Symfony%5CComponent%5CDependencyInjection%5CCompiler%5CRepeatedPass%3A%3Aprocess&callname=Symfony%5CComponent%5CDependencyInjection%5CCompiler%5CRepeatedPass%3A%3Aprocess

![image](https://user-images.githubusercontent.com/243674/40884496-c31e780e-6714-11e8-8218-967c4b25b9ce.png)

Commits
-------

cf375e5286 [DI] Improve performance of removing/inlining passes
2018-06-05 21:28:56 +02:00
Nicolas Grekas
6764d4e012 [FrameworkBundle] Fix test-container on kernel reboot, revert to returning the real container from Client::getContainer() 2018-06-05 15:25:09 +02:00
Nicolas Grekas
cf375e5286 [DI] Improve performance of removing/inlining passes 2018-06-05 13:59:51 +02:00
Nicolas Grekas
4f197a5512 feature #27462 [FrameworkBundle] Deprecate auto-injection of the container in AbstractController instances (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[FrameworkBundle] Deprecate auto-injection of the container in AbstractController instances

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

Should enhance DX by preventing situations like #27436.

Commits
-------

e2f344fa32 [FrameworkBundle] Deprecate auto-injection of the container in AbstractController instances
2018-06-04 23:09:49 +02:00
Maxime Steinhausser
7c97846811 [FrameworkBundle][SecurityBundle] Remove no-longer necessary Bundle::registerCommands override 2018-06-04 19:55:59 +02:00
Nicolas Grekas
e2f344fa32 [FrameworkBundle] Deprecate auto-injection of the container in AbstractController instances 2018-06-04 13:21:25 +02:00
Robin Chalas
9660103ff1 minor #27443 [DX] Improve exception message when AbstractController::getParameter fails (curry684)
This PR was squashed before being merged into the 4.1 branch (closes #27443).

Discussion
----------

[DX] Improve exception message when AbstractController::getParameter fails

| Q             | A
| ------------- | ---
| Branch?       | 4.1
| Bug fix?      | no (DX)
| 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 | #27436
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Improve exception message for situations where the `parameter_bag` is not present in `AbstractController`. Also fixed the exception to the correct type.

Commits
-------

a8f4128 [DX] Improve exception message when AbstractController::getParameter fails
2018-06-04 11:10:04 +02:00
Niels Keurentjes
a8f41289c4 [DX] Improve exception message when AbstractController::getParameter fails 2018-06-04 11:10:01 +02:00
Nicolas Grekas
b51b17d7e8 Merge branch '4.1'
* 4.1:
  [DI] Remove default env type check on validate
  [FrameworkBundle][TwigBridge] Fix BC break from strong dependency on CSRF token storage
2018-06-03 23:37:29 +02:00
Titouan Galopin
68994a662e [FrameworkBundle][TwigBridge] Fix BC break from strong dependency on CSRF token storage 2018-05-31 18:59:04 +02:00
Fabien Potencier
c81f88f38b feature #27398 [Cache] Remove TaggableCacheInterface, alias cache.app.taggable to CacheInterface (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Cache] Remove TaggableCacheInterface, alias cache.app.taggable to CacheInterface

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

Actually, there is no downside in using a taggable cache pool as a backend for CacheInterface.
This means we can simplify things and remove the TaggableCacheInterface and keep only CacheInterface (master-only).

Commits
-------

c250fbdda0 [Cache] Remove TaggableCacheInterface, alias cache.app.taggable to CacheInterface
2018-05-31 16:26:45 +02:00
Nicolas Grekas
5abffbbd07 Merge branch '4.1'
* 4.1: (22 commits)
  [HttpKernel] Fix restoring trusted proxies in tests
  Update UPGRADE-4.0.md
  [Messenger] Fix suggested enqueue adapter package
  bumped Symfony version to 4.1.1
  updated VERSION for 4.1.0
  updated CHANGELOG for 4.1.0
  Insert correct parameter_bag service in AbstractController
  Revert "feature #26702 Mark ExceptionInterfaces throwable (ostrolucky)"
  CODEOWNERS: some more rules
  removed unneeded comments in tests
  removed unneeded comments in tests
  Change PHPDoc in ResponseHeaderBag::getCookies() to help IDEs
  [HttpKernel] fix registering IDE links
  update UPGRADE-4.1 for feature #26332 Form field help option
  [HttpKernel] Set first trusted proxy as REMOTE_ADDR in InlineFragmentRenderer.
  [Process] Consider \"executable\" suffixes first on Windows
  Triggering RememberMe's loginFail() when token cannot be created
  bumped Symfony version to 4.1.0
  updated VERSION for 4.1.0-BETA3
  updated CHANGELOG for 4.1.0-BETA3
  ...
2018-05-31 12:18:23 +02:00
Nicolas Grekas
8bbd7389a3 Merge branch '4.0' into 4.1
* 4.0:
  [HttpKernel] Fix restoring trusted proxies in tests
  Update UPGRADE-4.0.md
  CODEOWNERS: some more rules
  removed unneeded comments in tests
  removed unneeded comments in tests
  Change PHPDoc in ResponseHeaderBag::getCookies() to help IDEs
  [HttpKernel] fix registering IDE links
  [HttpKernel] Set first trusted proxy as REMOTE_ADDR in InlineFragmentRenderer.
  [Process] Consider \"executable\" suffixes first on Windows
  Triggering RememberMe's loginFail() when token cannot be created
  [Serializer] Fix serializer tries to denormalize null values on nullable properties
  [FrameworkBundle] Change priority of AddConsoleCommandPass to TYPE_BEFORE_REMOVING
2018-05-31 12:17:53 +02:00
Nicolas Grekas
b2e93cfb8a Merge branch '3.4' into 4.0
* 3.4:
  [HttpKernel] Fix restoring trusted proxies in tests
  Update UPGRADE-4.0.md
  CODEOWNERS: some more rules
  removed unneeded comments in tests
  removed unneeded comments in tests
  Change PHPDoc in ResponseHeaderBag::getCookies() to help IDEs
  [HttpKernel] fix registering IDE links
  [HttpKernel] Set first trusted proxy as REMOTE_ADDR in InlineFragmentRenderer.
  [Process] Consider \"executable\" suffixes first on Windows
  Triggering RememberMe's loginFail() when token cannot be created
  [Serializer] Fix serializer tries to denormalize null values on nullable properties
  [FrameworkBundle] Change priority of AddConsoleCommandPass to TYPE_BEFORE_REMOVING
2018-05-31 12:16:04 +02:00
Fabien Potencier
c8ce780b9c feature #27429 [PropertyInfo] Auto-enable PropertyInfo component (sroze)
This PR was squashed before being merged into the 4.2-dev branch (closes #27429).

Discussion
----------

[PropertyInfo] Auto-enable PropertyInfo component

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

The PropertyInfo component (used by the Serializer to provide more insights from PhpDocs, etc...) is disabled by default, not sure why. This enables it by default when the component is installed.

Commits
-------

06ea72e3b2 [PropertyInfo] Auto-enable PropertyInfo component
2018-05-31 07:58:01 +02:00
Samuel ROZE
06ea72e3b2 [PropertyInfo] Auto-enable PropertyInfo component 2018-05-31 07:57:52 +02:00
Samuel ROZE
bbbcd46005 Add an alias to the property info type extractor 2018-05-30 18:13:59 +02:00
Niels Keurentjes
37270d79a2 Insert correct parameter_bag service in AbstractController 2018-05-30 11:26:42 +02:00
Fabien Potencier
3114ffb0ae bug #27272 [FrameworkBundle] Change priority of AddConsoleCommandPass to TYPE_BEFORE_REMOVING (upyx)
This PR was merged into the 3.4 branch.

Discussion
----------

[FrameworkBundle] Change priority of AddConsoleCommandPass to TYPE_BEFORE_REMOVING

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

Hello!
There is fix for #27259 issue. It changes priority of `AddConsoleCommandPass` to `TYPE_BEFORE_REMOVING` as @chalasr advised. I'm not sure about side effects by that.

Commits
-------

e36099503f [FrameworkBundle] Change priority of AddConsoleCommandPass to TYPE_BEFORE_REMOVING
2018-05-30 05:54:26 +02:00
Nicolas Grekas
896be4cc2b [FrameworkBundle] Allow configuring taggable cache pools 2018-05-29 15:12:15 +02:00
Nicolas Grekas
c250fbdda0 [Cache] Remove TaggableCacheInterface, alias cache.app.taggable to CacheInterface 2018-05-28 21:56:05 +02:00
Nicolas Grekas
92e3023195 [HttpKernel] fix registering IDE links 2018-05-28 17:16:05 +02:00
Nicolas Grekas
201b472009 Merge branch '4.1'
* 4.1: (26 commits)
  Revert "bug #27312 Supress deprecation notices thrown when getting private servies from container in tests (arderyp)"
  [HttpKernel] reset kernel start time on reboot
  Add code of Conduct links in our README
  bumped Symfony version to 4.0.12
  [FrameworkBundle] Fix using test.service_container when Client is rebooted
  [DI] never inline lazy services
  updated VERSION for 4.0.11
  updated CHANGELOG for 4.0.11
  bumped Symfony version to 3.4.12
  updated VERSION for 3.4.11
  updated CHANGELOG for 3.4.11
  Default testsuite to latest PHPUnit 6.*
  [Github] Update the pull-request template
  bumped Symfony version to 2.8.42
  updated VERSION for 2.8.41
  updated CHANGELOG for 2.8.41
  Tweak Argon2 test config
  [HttpFoundation] Fix cookie test with xdebug
  [FrameworkBundle] cleanup generated test container
  [Serializer] Check the value of enable_max_depth if defined
  ...
2018-05-25 16:55:42 +02:00
Nicolas Grekas
3e65a1c326 bug #27352 Remove reference to the test container after kernel shutdown (stof)
This PR was merged into the 4.1 branch.

Discussion
----------

Remove reference to the test container after kernel shutdown

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

This reference is not working anymore, as the main container was reset and cleaned. Keeping a reference to the test container will prevent collecting the object graph.

Commits
-------

d8fb1b97c9 Remove reference to the test container after kernel shutdown
2018-05-25 16:32:25 +02:00
Nicolas Grekas
af62eac5c2 bug #27367 [FrameworkBundle] cleanup generated test container (nicolas-grekas)
This PR was merged into the 4.1 branch.

Discussion
----------

[FrameworkBundle] cleanup generated test container

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

Cleans up removed and hidden services, fixes an issue when the private container locator is inlined.

Commits
-------

d8cbec00ad [FrameworkBundle] cleanup generated test container
2018-05-25 16:30:13 +02:00
Nicolas Grekas
169a3b1688 [FrameworkBundle] Fix using test.service_container when Client is rebooted 2018-05-25 15:53:35 +02:00
Fabien Potencier
2ed0cedb19 fixed constraints 2018-05-25 09:32:23 +02:00
Nicolas Grekas
d8cbec00ad [FrameworkBundle] cleanup generated test container 2018-05-24 17:31:00 +02:00
Nicolas Grekas
948a50aa18 Merge branch '4.1'
* 4.1: (21 commits)
  Fixed content trace CSS in profiler
  [Form] fix tests on old phpunit versions
  [FrameworkBundle] fix typo in CacheClearCommand
  [Serializer] Fix and improve constraintViolationListNormalizer's RFC7807 compliance
  bumped Symfony version to 4.1.0
  updated VERSION for 4.1.0-BETA2
  updated CHANGELOG for 4.1.0-BETA2
  bumped Symfony version to 4.0.11
  updated VERSION for 4.0.10
  updated CHANGELOG for 4.0.10
  bumped Symfony version to 3.4.11
  updated VERSION for 3.4.10
  updated CHANGELOG for 3.4.10
  bumped Symfony version to 2.8.41
  updated VERSION for 2.8.40
  updated CHANGELOG for 2.8.40
  bumped Symfony version to 2.7.48
  updated VERSION for 2.7.47
  update CONTRIBUTORS for 2.7.47
  updated CHANGELOG for 2.7.47
  ...
2018-05-23 15:33:53 +02:00
Nicolas Grekas
755815993d Merge branch '4.0' into 4.1
* 4.0:
  Fixed content trace CSS in profiler
  [Form] fix tests on old phpunit versions
  [FrameworkBundle] fix typo in CacheClearCommand
  bumped Symfony version to 4.0.11
  updated VERSION for 4.0.10
  updated CHANGELOG for 4.0.10
  bumped Symfony version to 3.4.11
  updated VERSION for 3.4.10
  updated CHANGELOG for 3.4.10
  bumped Symfony version to 2.8.41
  updated VERSION for 2.8.40
  updated CHANGELOG for 2.8.40
  bumped Symfony version to 2.7.48
  updated VERSION for 2.7.47
  update CONTRIBUTORS for 2.7.47
  updated CHANGELOG for 2.7.47
  fixed test
2018-05-23 15:33:23 +02:00
Christophe Coevoet
d8fb1b97c9 Remove reference to the test container after kernel shutdown
This reference is not working anymore, as the main container was reset and
cleaned. Keeping a reference to the test container will prevent collecting
the object graph.
2018-05-23 12:38:43 +02:00
Sergey Rabochiy
e36099503f [FrameworkBundle] Change priority of AddConsoleCommandPass to TYPE_BEFORE_REMOVING 2018-05-23 12:02:55 +07:00
Nicolas Grekas
388737232b Merge branch '3.4' into 4.0
* 3.4:
  [Form] fix tests on old phpunit versions
  [FrameworkBundle] fix typo in CacheClearCommand
  bumped Symfony version to 3.4.11
  updated VERSION for 3.4.10
  updated CHANGELOG for 3.4.10
  fixed test
2018-05-22 15:00:37 +02:00
Emilie Lorenzo
b1ec831cce
[FrameworkBundle] fix typo in CacheClearCommand 2018-05-22 12:57:49 +02:00
Nicolas Grekas
bd6769e391 feature #26929 [Cache] Add [Taggable]CacheInterface, the easiest way to use a cache (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Cache] Add [Taggable]CacheInterface, the easiest way to use a cache

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

This feature is a no-brainer, yet it provides a wonderful DX when using a cache:

by type-hinting the new `CacheInterface` or  `TaggableCacheInterface`, you get access to:

```php
public function get(string $key, callable $callback);
```

`$callback` is called when `$key` is not found in the cache pool.
It is given one arguments: a `CacheItemInterface $item` (a `CacheItem` for a `TaggableCacheInterface`), and should return the corresponding value.

```php
$value = $cache->get($key, function (CacheItemInterface $item) {
    $item->expiresAfter(3600);
    return $this->computeValue();
});
```

or for tags, on a `TaggableCacheInterface $cache`:
```php
$value = $cache->get($key, function (CacheItem $item) {
    $item->tag('foo_tag');
    return $this->computeValue();
});
```

Plain simple, I love it, why didn't we have the idea earlier, isn't it ?! :)

Commits
-------

589ff697f4 [Cache] Add [Taggable]CacheInterface, the easiest way to use a cache
2018-05-21 19:51:44 +02:00
Fabien Potencier
440bd7ea50 fixed test 2018-05-21 13:44:24 +02:00
Fabien Potencier
ea77ef1f76 Merge branch '4.1'
* 4.1:
  removed obsolete tests
2018-05-21 12:59:24 +02:00
Fabien Potencier
389092a6a9 Merge branch '4.0' into 4.1
* 4.0:
  removed obsolete tests
2018-05-21 12:59:05 +02:00
Fabien Potencier
2ce15f9179 removed obsolete tests 2018-05-21 12:58:57 +02:00
Fabien Potencier
00f25ee8f7 Merge branch '4.1'
* 4.1:
  fixed bad merge
2018-05-21 12:48:51 +02:00
Fabien Potencier
f9183db863 Merge branch '4.0' into 4.1
* 4.0:
  fixed bad merge
2018-05-21 12:48:43 +02:00
Fabien Potencier
f2419ddda6 fixed bad merge 2018-05-21 12:48:24 +02:00
Fabien Potencier
1f4100d635 Merge branch '4.1'
* 4.1:
  Supress deprecation notices thrown when getting private servies from container in tests
  Uses `protected` for test functions
  [Messenger] Allow to scope handlers per bus
  do not mock the session in token storage tests
  [DependencyInjection] resolve array env vars
  Add Occitan plural rule
  Fix security/* cross-dependencies
  [Messenger] implement several senders using a ChainSender
  [Lock] Skip test if posix extension is not installed
  fix bug when imported routes are prefixed
  [DI] Allow defining bindings on ChildDefinition
  use strict compare in url validator
  Disallow illegal characters like "." in session.name
  [HttpKernel] do file_exists() check instead of silent notice
  Select alternatives on missing receiver arg or typo
  fix rounding from string
2018-05-21 12:10:22 +02:00
Fabien Potencier
af4372220c Merge branch '4.0' into 4.1
* 4.0:
  do not mock the session in token storage tests
  [DependencyInjection] resolve array env vars
  Add Occitan plural rule
  Fix security/* cross-dependencies
  [Lock] Skip test if posix extension is not installed
  [DI] Allow defining bindings on ChildDefinition
  use strict compare in url validator
  Disallow illegal characters like "." in session.name
  [HttpKernel] do file_exists() check instead of silent notice
  fix rounding from string
2018-05-21 12:10:11 +02:00
Fabien Potencier
4d8a71d321 Merge branch '3.4' into 4.0
* 3.4:
  do not mock the session in token storage tests
  [DependencyInjection] resolve array env vars
  Add Occitan plural rule
  Fix security/* cross-dependencies
  [Lock] Skip test if posix extension is not installed
  [DI] Allow defining bindings on ChildDefinition
  use strict compare in url validator
  Disallow illegal characters like "." in session.name
  [HttpKernel] do file_exists() check instead of silent notice
  fix rounding from string
2018-05-21 12:09:47 +02:00
Fabien Potencier
793d1fe71a Merge branch '2.8' into 3.4
* 2.8:
  do not mock the session in token storage tests
  Add Occitan plural rule
  Fix security/* cross-dependencies
  Disallow illegal characters like "." in session.name
  fix rounding from string
2018-05-21 12:06:52 +02:00
Fabien Potencier
e336711cd9 Merge branch '2.7' into 2.8
* 2.7:
  do not mock the session in token storage tests
  Add Occitan plural rule
  Disallow illegal characters like "." in session.name
  fix rounding from string
2018-05-21 11:59:10 +02:00
Maxime Steinhausser
9d658e915e [Messenger] Allow to scope handlers per bus 2018-05-19 12:07:07 +02:00
Nicolas Grekas
9dbf399247 [Security/Core] Add "is_granted()" to security expressions, deprecate "has_role()" 2018-05-18 17:34:07 +02:00
Nicolas Grekas
589ff697f4 [Cache] Add [Taggable]CacheInterface, the easiest way to use a cache 2018-05-18 14:27:36 +02:00
Fabien Potencier
e98ce72e26 bug #27246 Disallow invalid characters in session.name (ostrolucky)
This PR was merged into the 2.7 branch.

Discussion
----------

Disallow invalid characters in session.name

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

PHP saves cookie with correct name, but upon deserialization to
`$_COOKIE`, it replaces "." characters with "_".

This is probably also reason why \SessionHandler is not able to find
a session.

https://harrybailey.com/2009/04/dots-arent-allowed-in-php-cookie-names/
https://bugs.php.net/bug.php?id=75883

Commits
-------

16ebb43bd4 Disallow illegal characters like "." in session.name
2018-05-17 12:20:37 +02:00
Nicolas Grekas
44cef5a69d Fix security/* cross-dependencies 2018-05-17 12:20:34 +02:00
Samuel ROZE
f1967aa37d minor #27002 [Messenger] implement several senders using a ChainSender (Tobion)
This PR was merged into the 4.1 branch.

Discussion
----------

[Messenger] implement several senders using a ChainSender

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| 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 |
| License       | MIT
| Doc PR        |

Commits
-------

198925ee4e [Messenger] implement several senders using a ChainSender
2018-05-17 08:12:54 +01:00
Nicolas Grekas
61fc221e70 Merge branch '4.1'
* 4.1: (22 commits)
  Fix CS
  [PropertyInfo] fix resolving parent|self type hints
  fixed CS
  fix merge
  [Security] Fix logout
  Cleanup 2 tests for the HttpException classes
  #27250 limiting GET_LOCK key up to 64 char due to changes in MySQL 5.7.5 and later
  [Config] Fix tests when path contains UTF chars
  [DI] Shared services should not be inlined in non-shared ones
  [Profiler] Remove propel & event_listener_loading category identifiers
  [Filesystem] Fix usages of error_get_last()
  [Cache][Lock] Fix usages of error_get_last()
  [Debug] Fix populating error_get_last() for handled silent errors
  fixed CS
  fixed CS
  fixed CS
  [FrameworkBundle] Fix cache:clear on vagrant
  [HttpKernel] Handle NoConfigurationException "onKernelException()"
  Fix misses calculation when calling getItems
  [DI] Display previous error messages when throwing unused bindings
  ...
2018-05-16 16:42:13 +02:00
Nicolas Grekas
205b097802 Merge branch '4.0' into 4.1
* 4.0: (21 commits)
  [PropertyInfo] fix resolving parent|self type hints
  fixed CS
  fix merge
  [Security] Fix logout
  Cleanup 2 tests for the HttpException classes
  #27250 limiting GET_LOCK key up to 64 char due to changes in MySQL 5.7.5 and later
  [Config] Fix tests when path contains UTF chars
  [DI] Shared services should not be inlined in non-shared ones
  [Profiler] Remove propel & event_listener_loading category identifiers
  [Filesystem] Fix usages of error_get_last()
  [Cache][Lock] Fix usages of error_get_last()
  [Debug] Fix populating error_get_last() for handled silent errors
  fixed CS
  fixed CS
  fixed CS
  [FrameworkBundle] Fix cache:clear on vagrant
  [HttpKernel] Handle NoConfigurationException "onKernelException()"
  Fix misses calculation when calling getItems
  [DI] Display previous error messages when throwing unused bindings
  Fixed return type
  ...
2018-05-16 16:33:22 +02:00
Tobias Schultze
198925ee4e [Messenger] implement several senders using a ChainSender 2018-05-16 15:12:01 +02:00
Fabien Potencier
ba5cb1a245 fixed CS 2018-05-16 14:49:49 +02:00
Samuel ROZE
4a7e6fa9bc Merge branch '4.1'
* 4.1:
  [Messenger] Middleware factories support in config
  [HttpKernel] Make TraceableValueResolver $stopwatch mandatory
  [Messenger] Improve the profiler panel
  [Workflow] Added DefinitionBuilder::setMetadataStore().
  [Messenger][DX] Uses custom method names for handlers
  [Messenger] remove autoconfiguration for Sender/ReceiverInterface
  [Messenger] Make sure default receiver name is set before command configuration
  [HttpKernel] Fix services are no longer injected into __invoke controllers method
  Rename tag attribute "name" by "alias"
  Autoconfiguring TransportFactoryInterface classes
  [Messenger] Fix new AMQP Transport test with Envelope
  Fixed return senders based on the message parents/interfaces
  [Messenger] Make sure Sender and Receiver locators have valid services
  [Workflow] add is deprecated since Symfony 4.1. Use addWorkflow() instead
  [Messenger] Fix TraceableBus with envelope
  Ensure the envelope is passed back and can be altered Ensure that the middlewares can also update the message within the envelope
  feature #26945 [Messenger] Support configuring messages when dispatching (ogizanagi)
  Add more tests around the AMQP transport
2018-05-14 20:20:21 +01:00
Samuel ROZE
f59ce97eff feature #27128 [Messenger] Middleware factories support in config (ogizanagi)
This PR was squashed before being merged into the 4.1 branch (closes #27128).

Discussion
----------

[Messenger] Middleware factories support in config

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

Following https://github.com/symfony/symfony/pull/26864, this would allow to configure easily the middlewares by using an abstract factory definition to which are provided simple arguments (just scalars, no services references).

For instance, here is how the DoctrineBundle would benefit from such a feature (also solving the wiring of the `DoctrineTransactionMiddleware` reverted in https://github.com/symfony/symfony/pull/26684):

```yaml
framework:
    messenger:
      buses:
        default:
          middleware:
            - logger
            - doctrine_transaction_middleware: ['entity_manager_name']
```

where `doctrine_transaction_middleware` would be an abstract factory definition provided by the doctrine bundle:

```yml
services:

    doctrine.orm.messenger.middleware_factory.transaction:
      class: Symfony\Bridge\Doctrine\Messenger\DoctrineTransactionMiddlewareFactory
      arguments: ['@doctrine']

    doctrine_transaction_middleware:
      class: Symfony\Bridge\Doctrine\Messenger\DoctrineTransactionMiddleware
      factory: ['@doctrine.orm.messenger.middleware_factory.transaction', 'createMiddleware']
      abstract: true
      # the default arguments to use when none provided from config.
      # i.e:
      #   middlewares:
      #     - doctrine_transaction_middleware: ~
      arguments: ['default']
```

and is interpreted as:

```yml
buses:
    default:
        middleware:
            -
                id: logger
                arguments: {  }
            -
                id: doctrine_transaction_middleware
                arguments:
                    - entity_manager_name
        default_middleware: true
```

---

<details>

<summary>Here is the whole config reference with these changes: </summary>

```yaml
# Messenger configuration
messenger:
    enabled:              true
    routing:

        # Prototype
        message_class:
            senders:              []
    serializer:
        enabled:              true
        format:               json
        context:

            # Prototype
            name:                 ~
    encoder:              messenger.transport.serializer
    decoder:              messenger.transport.serializer
    adapters:

        # Prototype
        name:
            dsn:                  ~
            options:              []
    default_bus:          null
    buses:

        # Prototype
        name:
            default_middleware:  true
            middleware:

                # Prototype
                -
                    id:                   ~ # Required
                    arguments:            []
```

</details>

Commits
-------

f5ef421474 [Messenger] Middleware factories support in config
2018-05-14 20:17:15 +01:00
Maxime Steinhausser
f5ef421474 [Messenger] Middleware factories support in config 2018-05-14 20:17:01 +01:00
Gabriel Ostrolucký
16ebb43bd4 Disallow illegal characters like "." in session.name
PHP saves cookie with correct name, but upon deserialization to
$_COOKIE, it replaces some characters, e.g. "." becomes "_".

This is probably also reason why \SessionHandler is not able to find
a session.

https://harrybailey.com/2009/04/dots-arent-allowed-in-php-cookie-names/
https://bugs.php.net/bug.php?id=75883
2018-05-13 23:57:04 +02:00