Commit Graph

9671 Commits

Author SHA1 Message Date
Samuel ROZE
7a091d9d61 Fix the transport factory after moving it 2018-05-08 16:44:19 +01:00
Nicolas Grekas
379b8eb56b [Messenger] Add TransportInterface as first class citizen sender+receiver 2018-05-07 07:49:40 -07:00
Samuel ROZE
9ae7c11805 Do not fix the middleware XML name anymore 2018-05-07 13:39:55 +01:00
Fabien Potencier
52e7500edb removed usage of middlewares 2018-05-07 13:37:49 +02:00
Maxime Steinhausser
e7cfb59480 [Messenger] Fix missing s/tolerate_no_handler/allow_no_handler/g 2018-05-07 11:41:32 +02:00
Fabien Potencier
9d5f50d7b6 bug #27162 [FrameworkBundle][Messenger] Remove convention-based service id generation for buses (nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[FrameworkBundle][Messenger] Remove convention-based service id generation for buses

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

Service ids for buses are user facing ids: ppl *will* have to deal with them when wiring their services.
Like for cache pools, we should ask ppl to declare them using full identifiers, instead of having a convention-based way to turn a name into and id (which is something nobody will be able to remember at some point.)

Commits
-------

c7a0045cbd [FrameworkBundle][Messenger] Remove convention-based service id generation for buses
2018-05-07 10:35:29 +02:00
Fabien Potencier
07ea1bb6f3 Merge branch '4.0'
* 4.0:
  fixed bad merge
2018-05-07 10:32:19 +02:00
Fabien Potencier
cb06e2a6fb fixed bad merge 2018-05-07 10:32:11 +02:00
Fabien Potencier
c53541f0ef bug #27084 [Messenger] Relax messenger config and fix some bugs (yceruto)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Messenger] Relax messenger config and fix some bugs

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

After playing a little with the config of this component I found some bugs around.

Reproducer:

 1. Install a fresh Symfony flex project with `^4.0@dev` dependencies
 2. Add the `symfony/messenger` requirement
 3. Add the following configuration separately:

Note that `symfony/serializer` has not been installed yet. ATM it's not required.

----------------------

Configuring my custom transport (not amqp):
```yaml
framework:
    messenger:
        transports:
            custom: 'my_transport://localhost/msgs'
        routing:
            '*': custom
```

**Before**  (Current behaviour):
Threw a logic exception, IMO unrelated at this point:
> Using the default encoder/decoder, Symfony Messenger requires the Serializer. Enable it or install it by running "composer require symfony/serializer-pack".

**After** (Proposal):
Pass! The Messenger's serializer config is disabled by definition because the Serializer component is not installed yet, then the related (default) encoder/decoder aliases are invalid, so the amqp transport factory service is removed altogether.

----------------------

According to the previous exception I configured my custom encoder/decoder services:
```yaml
framework:
    messenger:
        encoder: App\Serializer\Serializer
        decoder: App\Serializer\Serializer
        transports:
            custom: 'my_transport://localhost/msgs'
        routing:
            '*': custom
```

**Before**:
The same exception has been thrown, now a bit vague according to the config:
> Using the default encoder/decoder, Symfony Messenger requires the Serializer. Enable it or install it by running "composer require symfony/serializer-pack".

**After**:
Pass! the serializer is disabled by definition but there is custom encoder/decoder services, so let's keep the amqp transport factory with their custom encoder/decoder deps.

----------------------

Just enabling the serializer option:
```yaml
framework:
    messenger:
        serializer: true
```

**Before**:
Pass! Unexpected, as there is no transport configuration the exception wasn't thrown and still keeps the amqp transport factory service with invalid encoder/decoder (Serializer) dependencies.

**After**:
The Serializer config & support is verified if it's enabled regardless of the transport configuration and this exception is thrown for this case:
> The default Messenger serializer cannot be enabled as the Serializer support is not enabled.

I've removed the "install" part because at this point only we're checking whether the `framework.serializer` is enabled or not, so the next step after that should be enable the Serializer support in `framework.serializer`, which already verify whether the Serializer component is installed or not. IMO "composer require symfony/serializer-pack" should be there and not here. Also because `symfony/serializer` is not a hard dependency of this component.

----------------------

By last, I disabled the serializer option manually:
```yaml
framework:
    messenger:
        serializer: false
        transports:
            custom: 'my_transport://localhost/msgs'
        routing:
            '*': custom
```

**Before**:
I received this DI exception:
> The service "messenger.transport.amqp.factory" has a dependency on a non-existent service "messenger.transport.serializer".

**After**:
Pass! (same behaviour that the first example)

----------------------

As I explained earlier, this PR enables or disables the Messenger's serializer config based on the current Symfony platform and whether the Serializer component is installed or not, like other config with similar behaviour.

Tests included :)

Cheers!

Commits
-------

a05e2e2c3b Relax Messenger config and fix some bugs
2018-05-07 10:11:33 +02:00
Fabien Potencier
8123bb102b Merge branch '4.0'
* 4.0:
  use brace-style regex delimiters
  Fixed typo RecursiveIterator -> RecursiveIteratorIterator
  [Cache] fix logic for fetching tag versions on TagAwareAdapter
  [FrameworkBundle] Remove dead code
  [FrameworkBundle] Use the correct service id for CachePoolPruneCommand in its compiler pass
  Hide short exception trace by default
  [Doctrine Bridge] fix priority for doctrine event listeners
  [Validator] make phpdoc of ObjectInitializerInterface interface more accurate
  [Validator] fixes phpdoc reference to an interface that was removed in Symfony 3.0
2018-05-07 09:14:12 +02:00
Fabien Potencier
956c2f8091 Merge branch '3.4' into 4.0
* 3.4:
  use brace-style regex delimiters
  Fixed typo RecursiveIterator -> RecursiveIteratorIterator
  [Cache] fix logic for fetching tag versions on TagAwareAdapter
  [FrameworkBundle] Use the correct service id for CachePoolPruneCommand in its compiler pass
  Hide short exception trace by default
  [Doctrine Bridge] fix priority for doctrine event listeners
  [Validator] make phpdoc of ObjectInitializerInterface interface more accurate
  [Validator] fixes phpdoc reference to an interface that was removed in Symfony 3.0
2018-05-07 09:12:24 +02:00
Nicolas Grekas
c7a0045cbd [FrameworkBundle][Messenger] Remove convention-based service id generation for buses 2018-05-06 08:37:23 -07:00
Yonel Ceruto
a05e2e2c3b Relax Messenger config and fix some bugs 2018-05-06 10:57:10 -04:00
Javier Eguiluz
d27b158e4f Show the deprecations tab by default in the logger panel 2018-05-06 12:05:18 +02:00
Nicolas Grekas
278f40f48d bug #27143 [Console] By default hide the short exception trace line from exception messages in Symfony's commands (yceruto)
This PR was merged into the 3.4 branch.

Discussion
----------

[Console] By default hide the short exception trace line from exception messages in Symfony's commands

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

After https://github.com/symfony/symfony/pull/24131 this was in my contribution list since then.

Maybe it should be taken as a good practice when we build console commands, **use the exception classes of the Console component as much as possible to show a better message style to the end user**.

(See the before/after effect in the referenced PR)

Commits
-------

11f3c455d4 Hide short exception trace by default
2018-05-04 10:44:42 -07:00
Nicolas Grekas
cada38f520 minor #27144 [FrameworkBundle] Hide some lock-related services (nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[FrameworkBundle] Hide some lock-related services

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

I don't know why, but I missed these in #26921

Commits
-------

d06d8b2573 [FrameworkBundle] Hide some lock-related services
2018-05-04 10:30:57 -07:00
Robin Chalas
29b3e31382 [FrameworkBundle] Remove dead code 2018-05-04 16:54:39 +02:00
Christian Flothmann
ffb19e9518 replace remaining adapters with transports 2018-05-04 11:13:11 +02:00
Nicolas Grekas
d06d8b2573 [FrameworkBundle] Hide some lock-related services 2018-05-03 18:14:10 -07:00
Nicolas Grekas
47da23c7cb minor #27129 [Messenger] Rename Adapters to Transports (sroze)
This PR was squashed before being merged into the 4.1-dev branch (closes #27129).

Discussion
----------

[Messenger] Rename Adapters to Transports

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

Last of our tasks on the "plan to beta", renaming "adapters" to "transports". This is a term that makes more sense and is commonly used within the "queue community".

Commits
-------

13b747565f [Messenger] Rename Adapters to Transports
2018-05-03 17:10:25 -07:00
Samuel ROZE
13b747565f [Messenger] Rename Adapters to Transports 2018-05-03 17:09:35 -07:00
Nicolas Grekas
ce7f9bccdf minor #27123 [DebugBundle][HttpKernel] Update var-dumper requirement for components using SourceContextProvider (jvasseur)
This PR was squashed before being merged into the 4.1-dev branch (closes #27123).

Discussion
----------

[DebugBundle][HttpKernel] Update var-dumper requirement for components using SourceContextProvider

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

The DebugBundle is using the SourceContextProvider class that was introduced in v4.1

Commits
-------

b0b9060237 [DebugBundle][HttpKernel] Update var-dumper requirement for components using SourceContextProvider
2018-05-03 17:01:38 -07:00
Jérôme
b0b9060237 [DebugBundle][HttpKernel] Update var-dumper requirement for components using SourceContextProvider 2018-05-03 17:01:20 -07:00
Bert Hekman
32c7ee35be [FrameworkBundle] Use the correct service id for CachePoolPruneCommand in its compiler pass 2018-05-03 16:57:56 -07:00
Yonel Ceruto
11f3c455d4 Hide short exception trace by default 2018-05-03 19:18:14 -04:00
Fabien Potencier
6cb90daa76 feature #27104 [DX] Redirect to proper Symfony version documentation (noniagriconomie)
This PR was squashed before being merged into the 4.1-dev branch (closes #27104).

Discussion
----------

[DX] Redirect to proper Symfony version documentation

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

Just a small improvement
I think this can make some dev target the right documentation instead of reading an other version that the one they are developing on

EDIT: I do not know if including the constant directly is the good choice, or it is better to add a global symfony version collector?

Commits
-------

d611160ec6 [DX] Redirect to proper Symfony version documentation
2018-05-03 08:29:40 +02:00
Antoine M
d611160ec6 [DX] Redirect to proper Symfony version documentation 2018-05-03 08:29:31 +02:00
Nicolas Grekas
e6f99da5ca bug #26955 [DebugBundle][VarDumper] Fix server dumper placeholder command (ogizanagi)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[DebugBundle][VarDumper] Fix server dumper placeholder command

| Q             | A
| ------------- | ---
| Branch?       | master <!-- see below -->
| Bug fix?      | no, fixes a deprecation warning
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no, fixes ones <!-- 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 | #26944 <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

This placeholder command was addressed in quite an unorthodox fashion and the following fix isn't really better, but I guess that's fine for an internal class.

_As a reminder: this command aims to favor discoverability of the `ServerDumpCommand` when listing available commands and by exposing its definition so you can read about it by using `--help`. Execution hints about the `debug.dump_destination` config option required to wire the actual command._

That's the only command for which we're doing this, though. So better keep this placeholder or drop it?

Commits
-------

60af39b161 [DebugBundle][VarDumper] Fix server dumper placeholder command
2018-05-01 16:13:51 -07:00
Nicolas Grekas
7183c59c20 Merge branch '4.0'
* 4.0:
  Remove symfony/polyfill-ctype where not needed
  Use symfony/polyfill-ctype
  [Form] fixes instance variable phpdoc in FormRegistry class
  bumped Symfony version to 4.0.10
  updated VERSION for 4.0.9
  updated CHANGELOG for 4.0.9
  bumped Symfony version to 3.4.10
  updated VERSION for 3.4.9
  updated CHANGELOG for 3.4.9
2018-05-01 16:02:13 -07:00
Nicolas Grekas
a488d555ff Merge branch '3.4' into 4.0
* 3.4:
  Remove symfony/polyfill-ctype where not needed
  Use symfony/polyfill-ctype
  [Form] fixes instance variable phpdoc in FormRegistry class
  bumped Symfony version to 3.4.10
  updated VERSION for 3.4.9
  updated CHANGELOG for 3.4.9
  Add CODE_OF_CONDUCT.md
  Added .github/CODEOWNERS
  bumped Symfony version to 2.8.40
  updated VERSION for 2.8.39
  updated CHANGELOG for 2.8.39
2018-05-01 16:00:51 -07:00
Nicolas Grekas
e525248f66 Merge branch '2.8' into 3.4
* 2.8:
  Remove symfony/polyfill-ctype where not needed
  Use symfony/polyfill-ctype
  [Form] fixes instance variable phpdoc in FormRegistry class
2018-05-01 15:53:27 -07:00
Nicolas Grekas
087c667b83 Merge branch '2.7' into 2.8
* 2.7:
  Remove symfony/polyfill-ctype where not needed
  Use symfony/polyfill-ctype
  [Form] fixes instance variable phpdoc in FormRegistry class
2018-05-01 15:52:40 -07:00
Gert de Pagter
afc09cc8a7 Use symfony/polyfill-ctype
Use the polyfill for every package that uses cytpe functions.
2018-05-01 15:30:49 -07:00
Nicolas Grekas
e548b28b81 Merge branch '4.0'
* 4.0:
  [Debug][WebProfilerBundle] Fix setting file link format
  [Debug] Fixed the formatPath when a custom fileLinkFormat is defined
2018-04-30 10:00:18 -07:00
Nicolas Grekas
59298a9271 Merge branch '3.4' into 4.0
* 3.4:
  [Debug][WebProfilerBundle] Fix setting file link format
  [Debug] Fixed the formatPath when a custom fileLinkFormat is defined
2018-04-30 09:59:37 -07:00
Nicolas Grekas
a4a1645d44 [Debug][WebProfilerBundle] Fix setting file link format 2018-04-30 09:54:07 -07:00
Robin Chalas
e224548a0f [SecurityBundle] Fix framework-bundle dev requirement 2018-04-30 18:23:52 +02:00
Robin Chalas
c93c9a5880 [SecurityBundle] Fix test 2018-04-30 18:12:47 +02:00
Nicolas Grekas
8c0199e66b Merge branch '4.0'
* 4.0:
  PhpDoc: There is no attempt to create the directory
  Avoiding an error when an unused service has a missing base class
  Add an implementation just for php 7.0
  bumped Symfony version to 2.7.47
  Fix #27011: Session ini_set bug
  [Cache] TagAwareAdapterInterface::invalidateTags() should commit deferred items
  updated VERSION for 2.7.46
  update CONTRIBUTORS for 2.7.46
  updated CHANGELOG for 2.7.46
  bug #25844 [HttpKernel] Catch HttpExceptions when templating is not installed
2018-04-29 18:07:08 -07:00
Nicolas Grekas
ca0f0cf351 Merge branch '3.4' into 4.0
* 3.4:
  PhpDoc: There is no attempt to create the directory
  Avoiding an error when an unused service has a missing base class
  Add an implementation just for php 7.0
  bumped Symfony version to 2.7.47
  Fix #27011: Session ini_set bug
  [Cache] TagAwareAdapterInterface::invalidateTags() should commit deferred items
  updated VERSION for 2.7.46
  update CONTRIBUTORS for 2.7.46
  updated CHANGELOG for 2.7.46
  bug #25844 [HttpKernel] Catch HttpExceptions when templating is not installed
2018-04-29 18:05:59 -07:00
Nicolas Grekas
50a59c0488 feature #26655 [WebProfilerBundle] Make WDT follow ajax requests if header set (jeffreymb)
This PR was squashed before being merged into the 4.1-dev branch (closes #26655).

Discussion
----------

[WebProfilerBundle] Make WDT follow ajax requests if header set

Replaces #22509. I accidentally closed that PR and couldn't get GitHub to recognize when I added more commits to the branch in my fork.

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes (There are no tests that I could find)
| Fixed tickets | #15456
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!--highly recommended for new features-->

When the header of an ajax response contains the `Symfony-Debug-Toolbar-Replace` header with a value of '1' it will automatically update the toolbar with the toolbar with the debug info from the ajax request.

The bulk of the code in the `loadToolbar` function in the `base_js.html.twig` file is moved from the `toolbar_js.html.twig` file and slightly refactored to use the internal functions instead of making external calls. I take no credit/blame for this code. 😉

If this could make it into 4.1 there are multiple people that would be very happy!

Commits
-------

e4e591b [WebProfilerBundle] Make WDT follow ajax requests if header set
2018-04-29 09:29:55 +02:00
Jeffrey Brubaker
e4e591b46b [WebProfilerBundle] Make WDT follow ajax requests if header set 2018-04-29 09:29:44 +02:00
Nicolas Grekas
d843181bf6 minor #27063 [Translator] Further postpone adding resource files (nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Translator] Further postpone adding resource files

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

Commits
-------

2aa62df [Translator] Further postpone adding resource files
2018-04-29 08:06:02 +02:00
Nicolas Grekas
ff19a041ef minor #27083 [Messenger] Restore wildcard support in routing (yceruto)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Messenger] Restore wildcard support in routing

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

Also fixing some CS warnings and code structure.

Commits
-------

35317ac Restore wildcard support in routing
2018-04-29 07:57:19 +02:00
Nicolas Grekas
e902caae2f feature #27062 [SecurityBundle] Register a UserProviderInterface alias if one provider only (sroze)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[SecurityBundle] Register a `UserProviderInterface` alias if one provider only

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

When using only one user provider (as in most of the cases), it will register an alias for the `UserProviderInterface` interface and allow auto-wiring of it.

Commits
-------

4cbddd8 Register a `UserProviderInterface` alias if one provider only
2018-04-29 07:49:46 +02:00
Yonel Ceruto
35317ac987 Restore wildcard support in routing 2018-04-28 08:03:41 -04:00
Tobias Schultze
39c7c90a96 minor #27032 [Messenger][DX] Validate that the message exists to be able to configure its routing (sroze)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Messenger][DX] Validate that the message exists to be able to configure its routing

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

It attempted to me already: mispelling the message name and not understanding why it didn't work... An exception letting me know that the configured message does not exists will be 👌

Commits
-------

04d87ca829 Validate that the message exists to be able to configure its routing Uses an existing class in the tests... :) Only trigger the autoloading once
2018-04-27 01:34:37 +02:00
Tobias Schultze
ee0967f0ea feature #26975 [Messenger] Add a memory limit option for ConsumeMessagesCommand (sdelicata)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Messenger] Add a memory limit option for `ConsumeMessagesCommand`

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

New feature to add a memory limit option to the ConsumeMessagesCommand.
```
bin/console messenger:consume-messages <receiver-name> -m 128
```

Commits
-------

08f98cfaf1 [Messenger] Add a memory limit option for `ConsumeMessagesCommand`
2018-04-27 01:14:06 +02:00
Nicolas Grekas
2aa62df029 [Translator] Further postpone adding resource files 2018-04-26 14:20:27 +02:00
Samuel ROZE
4cbddd866f Register a UserProviderInterface alias if one provider only 2018-04-26 14:01:44 +02:00