Commit Graph

632 Commits

Author SHA1 Message Date
Nicolas Grekas
0d8f5fe985 Merge branch '4.3' into 4.4
* 4.3:
  fix tests
  [Validator] Added support for validation of giga values
  Fix Debug component tests
  [Messenger] fixed UnrecoverableExceptionInterface handling in Worker (fixes #32325)
  [Messenger] pass transport name to factory
2019-07-19 10:35:48 +02:00
Fabien Potencier
e44eb917ce bug #32568 [Messenger] Fix UnrecoverableExceptionInterface handling (LanaiGrunt)
This PR was merged into the 4.3 branch.

Discussion
----------

[Messenger] Fix UnrecoverableExceptionInterface handling

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

Fixed the handling of UnrecoverableExceptionInterface-Exceptions like suggested in [the issue thread](https://github.com/symfony/symfony/issues/32325#issuecomment-509351321).

Commits
-------

49bb7435f1 [Messenger] fixed UnrecoverableExceptionInterface handling in Worker (fixes #32325)
2019-07-19 09:19:36 +02:00
Nicolas Grekas
36c306d0ed Merge branch '4.4'
* 4.4: (30 commits)
  fix merge
  fix merge
  [HttpClient] fix debug output added to stderr at shutdown
  fix cs
  [Mailer] fixed logic
  fixed missing license
  Add a new ErrorHandler component (mirror of the Debug component)
  Use mocks before replacing the error handler
  [Config] Do not use absolute path when computing the vendor freshness
  [Process] Path resolution for FCGI configuration
  Bump minimum version of symfony/phpunit-bridge
  Container*::getServiceIds() should return an array of string
  [Config][ReflectionClassResource] Use ternary instead of null coaelscing operator
  [Validator] Add missing Russian and Ukrainian translations
  [Translation] Use HTTPS and fix a url
  [Config] Fix for signatures of typed properties
  [Validator] Add missing Hungarian translations
  [Validator] Add Lithuanian translation for Range validator
  Add HTTPS to a URL
  sync translation files
  ...
2019-07-18 12:46:32 +02:00
Nicolas Grekas
ed0b361d6f Merge branch '4.3' into 4.4
* 4.3: (25 commits)
  fix merge
  [HttpClient] fix debug output added to stderr at shutdown
  fix cs
  Use mocks before replacing the error handler
  [Config] Do not use absolute path when computing the vendor freshness
  Bump minimum version of symfony/phpunit-bridge
  Container*::getServiceIds() should return an array of string
  [Config][ReflectionClassResource] Use ternary instead of null coaelscing operator
  [Validator] Add missing Russian and Ukrainian translations
  [Translation] Use HTTPS and fix a url
  [Config] Fix for signatures of typed properties
  [Validator] Add missing Hungarian translations
  [Validator] Add Lithuanian translation for Range validator
  Add HTTPS to a URL
  sync translation files
  PHPDoc fixes
  Add notInRange translation
  Add danish translation for Range validator
  Add german translation for Range validator
  Update validators.es.xlf
  ...
2019-07-18 12:38:27 +02:00
Nicolas Grekas
813ad248e5 fix merge 2019-07-18 12:37:37 +02:00
Nicolas Grekas
61ce400807 Merge branch '4.2' into 4.3
* 4.2: (23 commits)
  fix cs
  Use mocks before replacing the error handler
  [Config] Do not use absolute path when computing the vendor freshness
  Bump minimum version of symfony/phpunit-bridge
  Container*::getServiceIds() should return an array of string
  [Config][ReflectionClassResource] Use ternary instead of null coaelscing operator
  [Validator] Add missing Russian and Ukrainian translations
  [Translation] Use HTTPS and fix a url
  [Config] Fix for signatures of typed properties
  [Validator] Add missing Hungarian translations
  [Validator] Add Lithuanian translation for Range validator
  Add HTTPS to a URL
  sync translation files
  PHPDoc fixes
  Add notInRange translation
  Add danish translation for Range validator
  Add german translation for Range validator
  Update validators.es.xlf
  [Validator] Add missing en and fr translation ids from 4.4
  [Debug][DebugClassLoader] Don't check class if the included file don't exist
  ...
2019-07-18 12:34:59 +02:00
Fabien Potencier
9ed1dd113c feature #32471 Add a new ErrorHandler component (mirror of the Debug component) (yceruto)
This PR was squashed before being merged into the 4.4 branch (closes #32471).

Discussion
----------

Add a new ErrorHandler component (mirror of the Debug component)

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

On top of https://github.com/symfony/symfony/pull/32470

Commits
-------

b1b6e80a3d Add a new ErrorHandler component (mirror of the Debug component)
2019-07-18 09:54:44 +02:00
Yonel Ceruto
b1b6e80a3d Add a new ErrorHandler component (mirror of the Debug component) 2019-07-18 09:54:35 +02:00
Piet Steinhart
49bb7435f1 [Messenger] fixed UnrecoverableExceptionInterface handling in Worker (fixes #32325) 2019-07-17 22:40:10 +02:00
Fabien Potencier
08c80eb341 fixed CS 2019-07-12 09:06:47 +03:00
Fabien Potencier
a8f9727e72 Merge branch '4.4'
* 4.4:
  fixed CS
  [Validator] Add a new constraint message when there is both min and max
  fixed CS
  [Bundles] Rename getPublicPath() as getPublicDir()
  Remove experimental notice from components
  [LDAP] add new option implemented in php 7.1
  Replace missing message parameter
2019-07-12 09:03:26 +03:00
Fabien Potencier
03b0284810 fixed CS 2019-07-12 09:03:00 +03:00
Fabien Potencier
c4568d1485 minor #32478 Remove experimental notice from components (teohhanhui)
This PR was merged into the 4.4 branch.

Discussion
----------

Remove experimental notice from components

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

@fabpot:
> Nothing can be marked as experimental in 4.4.
>
> https://github.com/symfony/symfony/pull/32277

Commits
-------

390c9a67bf Remove experimental notice from components
2019-07-12 07:44:05 +03:00
Bastien Clément
1f5c8a6790 Cancel delayed message if handler fails 2019-07-11 13:48:23 +02:00
Teoh Han Hui
390c9a67bf
Remove experimental notice from components 2019-07-11 11:03:49 +02:00
Nicolas Grekas
668f649b68 Merge branch '4.4'
* 4.4:
  Rename ErrorCatcher to ErrorRenderer (rendering part only)
2019-07-11 10:51:20 +02:00
Nicolas Grekas
4499e2a21a feature #32470 Rename ErrorCatcher to ErrorRenderer (rendering part only) (yceruto)
This PR was squashed before being merged into the 4.4 branch (closes #32470).

Discussion
----------

Rename ErrorCatcher to ErrorRenderer (rendering part only)

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

Follow up https://github.com/symfony/symfony/pull/32377

Commits
-------

fb5b0429b2 Rename ErrorCatcher to ErrorRenderer (rendering part only)
2019-07-11 10:47:06 +02:00
Yonel Ceruto
fb5b0429b2 Rename ErrorCatcher to ErrorRenderer (rendering part only) 2019-07-11 10:46:43 +02:00
Nicolas Grekas
4631e9cd6c Merge branch '4.4'
* 4.4: (53 commits)
  Fix Twig 1.x compatibility
  Deprecating templateExists method
  [Translator] Improve farsi(persian) translations for Form
  [Validator] Fix Changelog for #31511
  [Lock][Console] bump lock requirement in console
  [Lock] minor: add missing alias for PersistenStoreInterface
  Improve fa translations
  Dynamic bundle assets
  [Lock] rename and deprecate Factory into LockFactory
  [Debug] Restoring back the state of the Debug component (1st step)
  Spell "triggering" properly
  [Lock] Fix tests
  Added tests to cover the possibility of having scalars as services.
  fixed CS
  [Lock] Split \"StoreInterface\" into multiple interfaces with less responsability
  [VarDumper] Let browsers trigger their own search on double CMD/CTRL + F hit
  [Validator] Allow to use property paths to get limits in range constraint
  Fix missing deprecations
  fixed tests on old PHP versions
  [FrameworkBundle] Inform the user when save_path will be ignored
  ...
2019-07-11 07:40:26 +02:00
Nicolas Grekas
2e5a8c80c6 Merge branch '4.3' into 4.4
* 4.3: (26 commits)
  Fix Twig 1.x compatibility
  [Translator] Improve farsi(persian) translations for Form
  Improve fa translations
  Spell "triggering" properly
  Added tests to cover the possibility of having scalars as services.
  fixed tests on old PHP versions
  [FrameworkBundle] Inform the user when save_path will be ignored
  fixed CS
  [SecurityBundle] Fix profiler dump for non-invokable security listeners
  fixed CS
  [Messenger] Doctrine Transport: Support setting auto_setup from DSN
  [Translator] Load plurals from po files properly
  [Serializer]: AbstractObjectNormalizer ignores the property types of discriminated classes
  [EventDispatcher] Add tag kernel.rest on 'debug.event_dispatcher' service
  [Console] Update to inherit and add licence
  Add missing test for workflow dump description
  [Intl] Remove --dev from intl compile autoloader
  [Messenger] fix publishing headers set on AmqpStamp
  Remove call to deprecated method
  [Intl] Init compile tmp volume
  ...
2019-07-10 20:47:17 +02:00
Nicolas Grekas
f884d659ec Merge branch '4.2' into 4.3
* 4.2:
  Fix Twig 1.x compatibility
  [Translator] Improve farsi(persian) translations for Form
  Improve fa translations
  Added tests to cover the possibility of having scalars as services.
  fixed tests on old PHP versions
  [FrameworkBundle] Inform the user when save_path will be ignored
  fixed CS
  [Translator] Load plurals from po files properly
  [Serializer]: AbstractObjectNormalizer ignores the property types of discriminated classes
  [EventDispatcher] Add tag kernel.rest on 'debug.event_dispatcher' service
  [Console] Update to inherit and add licence
  [Intl] Remove --dev from intl compile autoloader
  Remove call to deprecated method
  [Intl] Init compile tmp volume
  PHP 5 compat
  Add test case
  Update Request.php
  Don't assume port 0 for X-Forwarded-Port
  Load plurals from mo files properly
2019-07-10 20:43:18 +02:00
Nyholm
35c76a385d Added tests for #32370 2019-07-08 23:25:18 -07:00
Fabien Potencier
853e032c19 fixed CS 2019-07-08 11:24:04 +02:00
Ben Davies
213dfd1492 [Messenger] Doctrine Transport: Support setting auto_setup from DSN 2019-07-08 11:23:12 +02:00
Tobias Schultze
50b3ec4dc5 [Messenger] fix publishing headers set on AmqpStamp 2019-07-07 01:21:29 +02:00
Tobias Schultze
52e8523f4a bug #32398 [Messenger] Removes deprecated call to ReflectionType::__toString() on MessengerPass (brunowowk)
This PR was merged into the 4.2 branch.

Discussion
----------

[Messenger] Removes deprecated call to ReflectionType::__toString() on MessengerPass

Closes #32397

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

Removes deprecated call to ReflectionType::__toString() for 7.4 support

Commits
-------

0c52a531e2 Remove call to deprecated method
2019-07-06 21:00:30 +02:00
Bruno Nogueira Nascimento Wowk
0c52a531e2 Remove call to deprecated method 2019-07-06 14:57:33 -03:00
Tobias Schultze
123d5b23df Merge branch '4.4' 2019-07-05 23:05:38 +02:00
Tobias Schultze
d27c5307f0 Merge branch '4.2' into 4.3 2019-07-05 23:01:41 +02:00
Alexander M. Turek
e110603e5e Don't pass objects as class name to ContainerBuilder::register. 2019-07-05 21:20:21 +02:00
Alexander M. Turek
edfc9d6f34 Deprecated passing Parameter instances as class name to Definition. 2019-07-05 21:06:26 +02:00
Nicolas Grekas
efdff595d0 Merge branch '4.4'
* 4.4:
  [Messenger] fix missing dep
2019-07-04 18:32:02 +02:00
Nicolas Grekas
6ab0488a54 [Messenger] fix missing dep 2019-07-04 18:31:08 +02:00
Nicolas Grekas
155cfb273f Merge branch '4.4'
* 4.4: (33 commits)
  [DI] fix processing of regular parameter bags by MergeExtensionConfigurationPass
  [FrameworkBundle] reset cache pools between requests
  [HttpFoundation] Accept must take the lead for Request::getPreferredFormat()
  [FrameworkBundle] Allow to use the BrowserKit assertions with Panther and API Platform's test client
  Use ConnectionRegistry instead of RegistryInterface.
  Fixes windows error
  Improving the request/response format autodetection
  [Messager] Simplified MessageBus::__construct()
  [WIP][Mailer] Overwrite envelope sender and recipients from config
  [Messenger] Added more test for MessageBus
  [Mime] Updated some PHPDoc contents
  [PropertyAccess] Adds entries to CHANGELOG and UPGRADE
  fixed typo
  [FrameworkBundle] Simplified some code in the DI configuration
  [Filesystem] added missing deprecations to UPGRADE-4.3.md
  [Filesystem] depreacte calling isAbsolutePath with a null
  Fix authentication for redis transport
  only decorate when an event dispatcher was passed
  [Messenger] Added support for auto trimming of redis streams
  [FrmaeworkBundle] More simplifications in the DI configuration
  ...
2019-07-04 15:54:52 +02:00
Alexander M. Turek
ce6a5ad235 Use ConnectionRegistry instead of RegistryInterface. 2019-07-04 02:03:26 +02:00
Fabien Potencier
b79a1bf229 Merge branch '4.3' into 4.4
* 4.3:
  Fixes windows error
  [Messenger] Added more test for MessageBus
  fixed typo
  [Filesystem] added missing deprecations to UPGRADE-4.3.md
  Fix authentication for redis transport
  only decorate when an event dispatcher was passed
  [FrmaeworkBundle] More simplifications in the DI configuration
  Fixing validation for messenger transports retry_strategy service key
  Removed unused field.
  Remove @internal annotations for the serilize methods
  [Lock] Stores must implement `putOffExpiration`
  Annotated correct return type for getInEdges()/getOutEdges().
  deprecate the framework.templating option
2019-07-03 19:15:45 +02:00
Fabien Potencier
f5a0633b40 minor #32338 [Messenger] Added more test for MessageBus (lyrixx)
This PR was merged into the 4.3 branch.

Discussion
----------

[Messenger] Added more test for MessageBus

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

[This code](bed50fd542/src/Symfony/Component/Messenger/MessageBus.php (L33-L49)) is quite hard to understand. So It must be covered by tests.

More over, it will help people to understand how it works

Commits
-------

5f4ab23991 [Messenger] Added more test for MessageBus
2019-07-03 18:25:48 +02:00
Grégoire Pineau
6b5671f5ae [Messager] Simplified MessageBus::__construct()
The third path deals with generator (or other king of iterator that are
not an IteratorAggregate). It means, very few cases in practice

The previous code saved one object on the first call of `self::dispatch()`
by replacing it at runtime. More over, this object (anon. class) is very
light in memory.

The performance optimization (even if fun) is not useful here. Let's
make the code readable to everyone.
2019-07-03 15:46:19 +02:00
Grégoire Pineau
5f4ab23991 [Messenger] Added more test for MessageBus 2019-07-03 14:56:57 +02:00
Alexander Schranz
bedae5dde9 Fix authentication for redis transport 2019-07-03 11:22:31 +02:00
Samuel ROZE
7bd0a2720f feature #31825 [Messenger] Added support for auto trimming of redis streams (Toflar)
This PR was squashed before being merged into the 4.4 branch (closes #31825).

Discussion
----------

[Messenger] Added support for auto trimming of redis streams

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        | will submit if concept is okay

Right now the Redis stream will just grow indefinitely. However, there are means to have it delete old entries from time to time.
Note: I could not use the `XADD mystream MAXLEN ~ 1000 *` notation because the PHP redis extension does not support the `MAXLEN` option afaics so I went for the extra `XTRIM` command.
I explicitly enabled the approximate flag because it makes absolutely no sense to hardcode the limit for us although we could even have this configurable too (but I don't think we should).
The whole idea of this PR is to enable occasional trimming of the stream so it doesn't grow forever, so when you configure something like `20000` it may well happen that trimming only happens at `25000` depending on your settings.

Ping @soyuka @alexander-schranz @chalasr :)

Commits
-------

7fe06bc5f6 [Messenger] Added support for auto trimming of redis streams
2019-07-02 21:18:22 +01:00
Yanick Witschi
7fe06bc5f6 [Messenger] Added support for auto trimming of redis streams 2019-07-02 21:18:11 +01:00
Tobias Schultze
05410342f5 Merge branch '4.4' 2019-07-02 16:48:44 +02:00
Fabien Potencier
191cb52902 removed @experimental annotations 2019-06-29 18:43:50 +02:00
Fabien Potencier
bef96ee884 Merge branch '4.4'
* 4.4:
  renamed the ErrorHandler component to ErrorCatcher
2019-06-27 19:56:41 +02:00
Fabien Potencier
b6eac3f861 renamed the ErrorHandler component to ErrorCatcher 2019-06-27 19:38:50 +02:00
Fabien Potencier
e13309c3f8 Merge branch '4.4'
* 4.4:
  made BuferringLogger classes internal and final
  Added ErrorHandler component
2019-06-27 16:24:50 +02:00
Fabien Potencier
13a5e2dd1f feature #31065 Add ErrorHandler component (yceruto)
This PR was merged into the 4.4 branch.

Discussion
----------

Add ErrorHandler component

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | no
| Fixed tickets | #25905, #26448
| License       | MIT
| Doc PR        | TODO

Mainly for API-based apps that don't require TwigBundle to get the correct exception response according to the request format (aka `_format` attribute).

![exception_response](https://user-images.githubusercontent.com/2028198/55509651-713dc700-562a-11e9-8b98-bef3b0229397.gif)

✔️ [RFC7807](https://tools.ietf.org/html/rfc7807) compliant for JSON and XML formats.

---

This introduce a new `ErrorRenderer` service that render a `FlattenException` into a given format:
```php
use Symfony\Component\ErrorHandler\ErrorRenderer\ErrorRenderer;
use Symfony\Component\ErrorHandler\ErrorRenderer\HtmlErrorRenderer;
use Symfony\Component\ErrorHandler\ErrorRenderer\JsonErrorRenderer;

$renderers = [
    new HtmlErrorRenderer(),
    new JsonErrorRenderer(),
    // ...
];
$errorRenderer = new ErrorRenderer($renderers);

return new Response(
    $errorRenderer->render($exception, $request->getRequestFormat()),
    $exception->getStatusCode(),
    $exception->getHeaders()
);
```

The built-in error renderers are:

| Format | Class |
| --- | --- |
| html | HtmlErrorRenderer |
| json | JsonErrorRenderer |
| xml, atom | XmlErrorRenderer |
| txt | TxtErrorRenderer |

And you can add your own error renderer by implementing the `ErrorRendererInterface` and tagging it with `error_handler.renderer` in your service definition.

Creating your own error renderer for a built-in format will end up replacing the related built-in error renderer.

Demo: https://github.com/yceruto/error-handler-app ([add custom error renderer](06fc647841))

Commits
-------

7057244890 Added ErrorHandler component
2019-06-27 14:40:37 +02:00
Nicolas Grekas
f8ccc8105c Merge branch '4.4'
* 4.4: (43 commits)
  [PhpunitBridge] Read environment variable from superglobals
  [Bridge/PhpUnit] Fix PHP5.5 compat
  [PhpUnitBridge] More accurate grouping
  fixed CS
  [Form] remove comment about to-be-removed method as it is used in master by ButtonBuilder
  Extract unrecoverable exception to interface
  [FrameworkBundle] Fix calling Client::getProfile() before sending a request
  Fix type error
  [Security/Core] require libsodium >= 1.0.14
  [Workflow] re-add workflow.definition tag to workflow services
  [Security/Core] Don't use ParagonIE_Sodium_Compat
  revert #30525 due to performance penalty
  collect called listeners information only once
  [Lock] fix missing inherit docs in RedisStore
  [Messenger] fix retrying handlers using DoctrineTransactionMiddleware
  [Mailgun Mailer] fixed issue when using html body
  [Messenger] make all stamps final and mark stamp not meant to be sent
  [HttpClient] fix timing measurements with NativeHttpClient
  add return type declaration
  use proper return types in ErrorHandler and ArgumentResolver
  ...
2019-06-26 11:36:22 +02:00
Nicolas Grekas
55c0b02587 Merge branch '4.3' into 4.4
* 4.3: (34 commits)
  [PhpunitBridge] Read environment variable from superglobals
  [Bridge/PhpUnit] Fix PHP5.5 compat
  [PhpUnitBridge] More accurate grouping
  fixed CS
  Extract unrecoverable exception to interface
  [FrameworkBundle] Fix calling Client::getProfile() before sending a request
  Fix type error
  [Security/Core] require libsodium >= 1.0.14
  [Workflow] re-add workflow.definition tag to workflow services
  [Security/Core] Don't use ParagonIE_Sodium_Compat
  revert #30525 due to performance penalty
  collect called listeners information only once
  [Lock] fix missing inherit docs in RedisStore
  [Messenger] fix retrying handlers using DoctrineTransactionMiddleware
  [Mailgun Mailer] fixed issue when using html body
  [HttpClient] fix timing measurements with NativeHttpClient
  [HttpClient] fix dealing with 1xx informational responses
  add test to avoid regressions
  fix mirroring directory into parent directory
  fix typos
  ...
2019-06-26 11:30:56 +02:00
Fabien Potencier
3cd795fdde fixed CS 2019-06-26 09:55:28 +02:00
Fabien Potencier
bd2356d8e5 bug #31966 [Messenger] Doctrine Connection find and findAll now correctly decode headers (TimoBakx)
This PR was merged into the 4.3 branch.

Discussion
----------

[Messenger] Doctrine Connection find and findAll now correctly decode headers

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

The Doctrine transport `Connection` class methods `find` and `findAll` did not JSON-decode the headers of the envelope after retrieving it from Doctrine. The `get` method, however, did this correctly.

I added two tests to verify the results of `find` and `findAll` and then added the JSON-decoding to the `Connection` class. I moved the JSON-decoding to a separate method to avoid duplicate code.

Commits
-------

3aec2acce5 [Messenger] Doctrine Connection find and findAll now correctly decode headers
2019-06-26 09:44:37 +02:00
Tobias Schultze
6a2f4dc67a Extract unrecoverable exception to interface 2019-06-26 00:15:30 +02:00
Tobias Schultze
8124159052 minor #32078 [Messenger] make all stamps final and mark stamp not meant to be sent (Tobion)
This PR was merged into the 4.4 branch.

Discussion
----------

[Messenger] make all stamps final and mark stamp not meant to be sent

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- please 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        |

Some newer stamps were already final. This makes all of them final. Also marks all stamps that are not meant to be sent using the new `NonSendableStampInterface`. This makes it easier to see which stamps are actually important and required to persist in a queue for certain functionality, like the `BusNameStamp` for the `RoutableMessageBus`

Commits
-------

013904b081 [Messenger] make all stamps final and mark stamp not meant to be sent
2019-06-24 23:33:22 +01:00
Tobias Schultze
67af93f3b0 bug #32053 [Messenger] No need for retry to require SentStamp (Tobion)
This PR was merged into the 4.3 branch.

Discussion
----------

[Messenger] No need for retry to require SentStamp

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please 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        |

Fixes 2) in #32049
@weaverryan the SentStamp in the worker seems totally irrelevant. You always want to send messages back to the transport where they came from for retry. The only relevance I can potentially see is for the SyncTransport. Messages received async from worker might be routed to the SyncTransport. Using the SentStamp would redeliver the messages into the SyncTransport instead of the async. But that doesn't seem to have any use-case. I'm running the worker which handles the messages immediately. So basically there is no difference if they go to the Sync or Async transport from within the worker.

Commits
-------

0034dee641 [Messenger] make retry logic work without SentStamp
2019-06-24 23:32:13 +01:00
Tobias Schultze
013904b081 [Messenger] make all stamps final and mark stamp not meant to be sent 2019-06-24 14:58:45 +01:00
Tobias Schultze
18793b7ca7 feature #31996 [5.0] Add return types in final classes (dFayet)
This PR was merged into the 5.0-dev branch.

Discussion
----------

[5.0] Add return types in final classes

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

This is the first step for the issue #31981

I have some questions:

-  ~I have not added type for methods with `@inheritdoc` annotation, should I?~
- ~Don't we want to type also functions without `@return` annotation? (still in `final` classes)~
- ~If yes is the answer of the previous one, do we also want the `void` return type?~
- ~I have also added the return type in the `DependencyInjection` PhpDumper, but is it also wanted? (if yes, I will clean a bit the code changed)~
- ~Should we update the documentation's code samples when they display `final` classes?~

Todo:
- [x] Adjust the PR, following the answers of the questions
- [x] Add return type also when there is no `@return`, or with `@inheritdoc`
- [x] [src/Symfony/Component/Debug/ErrorHandler.php#L383](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Debug/ErrorHandler.php#L383) `@return` annotation is not correct according to the return, investigate and adjust if needed
- [x] [src/Symfony/Component/HttpKernel/ControllerMetadata/ArgumentMetadataFactory.php#L50](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpKernel/ControllerMetadata/ArgumentMetadataFactory.php#L50) `@return` annotation is not correct according to the return, investigate and adjust if needed
- [x] Do a PR on documentation to add return type on code snippets with final classes => unneeded as they were already typed

Commits
-------

ca5ae1989e Replace @return annotation by return type in final classes
2019-06-23 23:15:46 +01:00
dFayet
ca5ae1989e Replace @return annotation by return type in final classes 2019-06-23 00:57:33 +02:00
Tobias Schultze
7822b3cbc0 bug #32027 [Messenger] Remove DispatchAfterCurrentBusStamp when message is put on internal queue (Nyholm)
This PR was merged into the 4.3 branch.

Discussion
----------

[Messenger] Remove DispatchAfterCurrentBusStamp when message is put on internal queue

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

This will fix #32009.

Thank you @brpauwels for the report.

I consider it safe to remove the `DispatchAfterCurrentBusStamp` because its meaning disappear after we handled the "current bus".

T0: We add the stamp
T1: We put the envelope on an internal queue in `DispatchAfterCurrentBusMiddleware`
T2: We handle the current bus.
T3: We start processing our internal queue.

At T3 there we are "after current bus", that is why we dont need the stamp any more.

Commits
-------

91f1680b3f [Messenger] Remove DispatchAfterCurrentBusStamp when message is put on internal queue
2019-06-22 23:18:30 +01:00
Christian Flothmann
1ac9cc285c Merge branch '4.4'
* 4.4:
  fix order of items in upgrade file
  fix translation domain
  tag the FileType service as a form type
  don't validate IP addresses from env var placeholders
  [Validator] Fix GroupSequenceProvider annotation
  [Messenger] fix delay exchange recreation after disconnect
  Update ajax security cheat sheet link
  Fix AuthenticationException::getToken typehint
2019-06-21 12:30:11 +02:00
Christian Flothmann
431a769307 Merge branch '4.3' into 4.4
* 4.3:
  fix translation domain
  tag the FileType service as a form type
  don't validate IP addresses from env var placeholders
  [Validator] Fix GroupSequenceProvider annotation
  [Messenger] fix delay exchange recreation after disconnect
  Update ajax security cheat sheet link
  Fix AuthenticationException::getToken typehint
2019-06-21 12:14:40 +02:00
Yonel Ceruto
7057244890 Added ErrorHandler component 2019-06-20 11:01:49 -04:00
Tobias Schultze
c1c3b54a0f [Messenger] fix delay exchange recreation after disconnect 2019-06-20 03:38:05 +01:00
Nicolas Grekas
fa29a56683 Merge branch '4.4'
* 4.4:
  [Cache] replace getNsSeparator by NS_SEPARATOR on AbstractTrait
  [Cache] fix versioning with SimpleCacheAdapter
  [Messenger] fix AMQP delay queue to be per exchange
  Fix expired lock not cleaned
  Fine tune constructor types
  [HttpClient] throw DecodingExceptionInterface when toArray() fails because of content-type error
  [HttpFoundation] Fix SA/phpdoc JsonResponse
  [DI] Show the right class autowired when providing a non-existing class in constructor
  SimpleCacheAdapter fails to cache any item if a namespace is used
  validate composite constraints in all groups
  [Serializer] Handle true and false appropriately in CSV encoder
  [Messenger] improve logs
  [Messenger] fix delay delivery for non-fanout exchanges
  Parameterize Mailgun's region
  Fix binary operation `+`, `-` or `*` on string
  [VarDumper] fix dumping objects that implement __debugInfo()
  [HttpClient] Don't use CurlHttpClient on Windows when curl.cainfo is not set
  Add statement to fileLink to ignore href code when no fileLink.
  [Routing] fix absolute url generation when scheme is not known
2019-06-17 19:43:54 +02:00
Nicolas Grekas
651de173df Merge branch '4.3' into 4.4
* 4.3:
  [Cache] replace getNsSeparator by NS_SEPARATOR on AbstractTrait
  [Cache] fix versioning with SimpleCacheAdapter
  [Messenger] fix AMQP delay queue to be per exchange
  Fix expired lock not cleaned
  [HttpClient] throw DecodingExceptionInterface when toArray() fails because of content-type error
  [HttpFoundation] Fix SA/phpdoc JsonResponse
  [DI] Show the right class autowired when providing a non-existing class in constructor
  SimpleCacheAdapter fails to cache any item if a namespace is used
  validate composite constraints in all groups
  [Serializer] Handle true and false appropriately in CSV encoder
  [Messenger] improve logs
  [Messenger] fix delay delivery for non-fanout exchanges
  Parameterize Mailgun's region
  Fix binary operation `+`, `-` or `*` on string
  [VarDumper] fix dumping objects that implement __debugInfo()
  [HttpClient] Don't use CurlHttpClient on Windows when curl.cainfo is not set
  Add statement to fileLink to ignore href code when no fileLink.
  [Routing] fix absolute url generation when scheme is not known
2019-06-17 19:38:10 +02:00
Tobias Schultze
5bc3364167 [Messenger] fix AMQP delay queue to be per exchange 2019-06-17 18:43:56 +02:00
Tobias Schultze
0034dee641 [Messenger] make retry logic work without SentStamp 2019-06-14 23:41:22 +02:00
Tobias Schultze
a9bcdcc936 bug #32035 [Messenger] fix delay delivery for non-fanout exchanges (Tobion)
This PR was merged into the 4.3 branch.

Discussion
----------

[Messenger] fix delay delivery for non-fanout exchanges

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please 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        | symfony/symfony-docs#... <!-- required for new features -->

Fixes two bugs and outdated phpdoc:
1. When your exchange is not of type fanout, but direct for example, then delivery of delayed (retrying) messages does not work. This is because the delay logics adds a routing key to message. It was fixed if you have a custom routing key in #31355. But if you have no routing key, it still changed the routing key which means the message will not be delivery from your direct exchange to your queue anymore after being in the delay exchange. For fanout, which is the default, it does not matter because the routing key is ignored.
2. also fix dsn parsing of plain `amqp://` which is a valid URI that parse_url cannot handle when you want to pass all parameters as options

Commits
-------

0f15306d61 [Messenger] fix delay delivery for non-fanout exchanges
2019-06-14 19:11:46 +02:00
Tobias Schultze
2ac7027b71 [Messenger] improve logs 2019-06-14 05:35:37 +02:00
Tobias Schultze
0f15306d61 [Messenger] fix delay delivery for non-fanout exchanges
also fix dsn parsing of plain amqp:// uri
2019-06-14 02:31:20 +02:00
Tobias Nyholm
91f1680b3f
[Messenger] Remove DispatchAfterCurrentBusStamp when message is put on internal queue 2019-06-13 15:04:56 +02:00
Fabien Potencier
c449e6368c Merge branch '4.4'
* 4.4:
  fixed CS
  fixed CS
  fixed CS
  fixed CS
  Do not log or call the proxy function when the locale is the same
  Added missing required dependencies on psr/cache and psr/container in symfony/cache-contracts and symfony/service-contracts respectively.
  [HttpClient] fix closing debug stream prematurely
  [Mailer] made code more robust
  Restore compatibility with php 5.5
  fixed sender/recipients in SMTP Envelope
  collect called listeners information only once
  [HttpClient] add HttplugClient for compat with libs that need httplug v1 or v2
  [HttpKernel] Remove TestEventDispatcher.
2019-06-13 13:15:36 +02:00
Fabien Potencier
8787bbc94a Merge branch '4.3' into 4.4
* 4.3:
  fixed CS
  fixed CS
  fixed CS
  Do not log or call the proxy function when the locale is the same
  Added missing required dependencies on psr/cache and psr/container in symfony/cache-contracts and symfony/service-contracts respectively.
  [HttpClient] fix closing debug stream prematurely
  [Mailer] made code more robust
  Restore compatibility with php 5.5
  fixed sender/recipients in SMTP Envelope
  collect called listeners information only once
  [HttpKernel] Remove TestEventDispatcher.
2019-06-13 13:05:05 +02:00
Fabien Potencier
9526988eca fixed CS 2019-06-13 13:03:18 +02:00
Fabien Potencier
84bc7aba91 Merge branch '4.2' into 4.3
* 4.2:
  fixed CS
  fixed CS
  [HttpKernel] Remove TestEventDispatcher.
2019-06-13 13:01:17 +02:00
Fabien Potencier
37fa45bbd1 fixed CS 2019-06-13 12:57:15 +02:00
Timo Bakx
3aec2acce5 [Messenger] Doctrine Connection find and findAll now correctly decode headers 2019-06-09 22:48:04 +02:00
Nicolas Grekas
39622488bb Remove deprecated code paths that trigger a runtime notice 2019-06-09 16:44:48 +02:00
Nicolas Grekas
f930ed2374 Merge branch '4.4'
* 4.4:
  [HttpKernel] fix link to source generation
  [Doctrine Bridge] Check field type before adding Length constraint
  [FrameworkBundle] fix BC-breaking property in WebTestAssertionsTrait
  [Cache] Pass  arg to get callback everywhere
  Fix DoctrineBridge upgrade 5.0
  [FramworkBundle][HttpKernel] fix KernelBrowser BC layer
  Add a missing quote in getValue() DocBlock
  [Messenger] Add runtime check for ext redis version
  [HttpFoundation] Fixed case-sensitive handling of cache-control header in RedirectResponse constructor.
  minor: ChoiceType callable deprecation after/before seems wrong
2019-06-06 12:05:45 +02:00
Nicolas Grekas
3c8d4c2842 Merge branch '4.3' into 4.4
* 4.3:
  [HttpKernel] fix link to source generation
  [Doctrine Bridge] Check field type before adding Length constraint
  [FrameworkBundle] fix BC-breaking property in WebTestAssertionsTrait
  [Cache] Pass  arg to get callback everywhere
  Fix DoctrineBridge upgrade 5.0
  [FramworkBundle][HttpKernel] fix KernelBrowser BC layer
  Add a missing quote in getValue() DocBlock
  [Messenger] Add runtime check for ext redis version
  [HttpFoundation] Fixed case-sensitive handling of cache-control header in RedirectResponse constructor.
  minor: ChoiceType callable deprecation after/before seems wrong
2019-06-06 12:05:19 +02:00
Robin Chalas
07603da06c [Messenger] Add runtime check for ext redis version 2019-06-05 15:18:57 +02:00
Fabien Potencier
1177a2aeed Merge branch '4.4'
* 4.4:
  Fix inconsistency in json format regarding DST value
  changed type hints
  conflict with HttpKernel component 5.0
  do not process private properties from parent class
  [HttpClient] fix unregistering the debug buffer when using curl
  don't add embedded properties to wrapping class metadata
  [Messenger] set amqp content_type based on serialization format
  [Mailer] fixed the possibility to set a From header from MessageListener
2019-06-04 14:24:56 +02:00
Fabien Potencier
926ded8ea5 Merge branch '4.3' into 4.4
* 4.3:
  Fix inconsistency in json format regarding DST value
  changed type hints
  do not process private properties from parent class
  [HttpClient] fix unregistering the debug buffer when using curl
  don't add embedded properties to wrapping class metadata
  [Messenger] set amqp content_type based on serialization format
  [Mailer] fixed the possibility to set a From header from MessageListener
2019-06-04 14:24:01 +02:00
Nicolas Grekas
5e293d9e58 Merge branch '4.4'
* 4.4:
  [Translation] Fixed case sensitivity of lint:xliff command
  fix type hint for salt in PasswordEncoderInterface
  Add missing deprecations for PHP templating layer
  Simplify code - catch \Throwable capture all exceptions
  Collect locale details earlier in the process in TranslationDataCollector
  fix typo in PR #31802
  update italian validator translation
  Add missing translations
  [Messenger] Deprecate passing a bus locator to ConsumeMessagesCommand constructor
  [SecurityBundled] Forbid security-http >= 5.0
  [Security][Guard] Forbid security-http >= 5.0
  [TwigBridge] suggest Translation Component when TranslationExtension is used
  [Monolog] Setup the LoggerProcessor after all other processor
2019-06-03 22:32:35 +02:00
Tobias Schultze
dee077016d [Messenger] set amqp content_type based on serialization format 2019-06-02 07:04:11 +02:00
Robin Chalas
14093386e6 [Messenger] Deprecate passing a bus locator to ConsumeMessagesCommand constructor 2019-06-01 15:06:38 +02:00
Robin Chalas
e5aaa8cd57 Merge branch '4.4'
* 4.4:
  [SecurityBundle][Workflow] Forbid security-core 5.x
  [Security\Core] Make SodiumPasswordEncoder validate BCrypt-ed passwords
  [MonologBridge] RouteProcessor class is now final to ease the the removal of deprecated event
  [Validator] Fix TimezoneValidator default option
  [Messenger] Inject RoutableMessageBus instead of bus locator
  [DomCrawler] Fix type error with null Form::$currentUri
  [Contracts] Fixed typos
  [Security][Http] Forbid security-core 5.x
  do not enable validator auto mapping by default
  [HttpClient] remove unused argument
2019-05-31 20:58:54 +02:00
Robin Chalas
8e5b6573ea Merge branch '4.3' into 4.4
* 4.3:
  [Security\Core] Make SodiumPasswordEncoder validate BCrypt-ed passwords
  [Validator] Fix TimezoneValidator default option
  [Messenger] Inject RoutableMessageBus instead of bus locator
  [DomCrawler] Fix type error with null Form::$currentUri
  [Contracts] Fixed typos
  do not enable validator auto mapping by default
  [HttpClient] remove unused argument
2019-05-31 20:55:48 +02:00
Robin Chalas
91817e4de0 [Messenger] Inject RoutableMessageBus instead of bus locator 2019-05-31 02:51:53 +02:00
Nicolas Grekas
dc82bba1e1 Merge branch '4.4'
* 4.4:
  Use willReturn() instead of will(returnValue()).
2019-05-30 18:12:02 +02:00
Nicolas Grekas
c62032a730 Merge branch '4.3' into 4.4
* 4.3:
  Use willReturn() instead of will(returnValue()).
2019-05-30 18:10:19 +02:00
Nicolas Grekas
0da213711c Merge branch '4.2' into 4.3
* 4.2:
  Use willReturn() instead of will(returnValue()).
2019-05-30 18:10:05 +02:00
Nicolas Grekas
06c655251c Merge branch '3.4' into 4.2
* 3.4:
  Use willReturn() instead of will(returnValue()).
2019-05-30 18:06:08 +02:00
Amrouche Hamza
880d1d8690
[Messenger] add the changelog entry about LoggingMiddleware 2019-05-29 18:41:13 +02:00
Nicolas Grekas
b59fd3610f minor #31670 [Messenger] minor: Remove logging middleware (Simperfit)
This PR was merged into the 5.0-dev branch.

Discussion
----------

[Messenger] minor: Remove logging middleware

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

<!--
Replace this notice by a short README for your feature/bugfix. This will help people
understand your PR and can be used as a start for the documentation.

Additionally (see https://symfony.com/roadmap):
 - Bug fixes must be submitted against the lowest maintained 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.
-->

Removes the LoggingMiddlewere

Commits
-------

2e6fbd5210 [Messenger] minor: Remove logging middleware
2019-05-29 11:22:07 +02:00
Nicolas Grekas
ddbe11dbcd Add back all conflict rules 2019-05-29 10:53:30 +02:00
Nicolas Grekas
bc7783c4be Add back some conflict rules 2019-05-29 09:31:53 +02:00
Amrouche Hamza
2e6fbd5210
[Messenger] minor: Remove logging middleware 2019-05-29 07:28:49 +02:00
Nicolas Grekas
2dffc58aac Bump deps to ^4.4|^5.0 for Symfony 5.0 2019-05-28 20:01:02 +02:00
Nicolas Grekas
d94d9d792c Bump Symfony 5.0 to PHP 7.2 2019-05-28 18:49:20 +02:00
Nicolas Grekas
66924dba7c Merge branch '4.4'
* 4.4:
  Allow Symfony 5.0
2019-05-28 18:26:29 +02:00
Nicolas Grekas
384393cb36 Allow Symfony 5.0 2019-05-28 17:53:17 +02:00
Nicolas Grekas
65981cc722 Merge branch '4.4'
* 4.4:
  bumped Symfony version to 4.3.0
  updated VERSION for 4.3.0-RC1
  updated CHANGELOG for 4.3.0-RC1
  Create an abstract HTTP transport and extend it in all HTTP transports
  Updated "experimental" annotations for 4.3
2019-05-28 14:58:58 +02:00
Nicolas Grekas
94fd42c396 Merge branch '4.3' into 4.4
* 4.3:
  bumped Symfony version to 4.3.0
  updated VERSION for 4.3.0-RC1
  updated CHANGELOG for 4.3.0-RC1
  Create an abstract HTTP transport and extend it in all HTTP transports
  Updated "experimental" annotations for 4.3
2019-05-28 14:57:34 +02:00
Fabien Potencier
8869eb3521 updated version to 5.0 2019-05-28 14:18:42 +02:00
Nicolas Grekas
3a508e3258 Updated "experimental" annotations for 4.3 2019-05-28 13:49:01 +02:00
Nicolas Grekas
f0a14b1d39 Merge branch '4.3'
* 4.3:
  fix tests
  [Messenger] Use real memory usage for --memory-limit
2019-05-28 09:51:04 +02:00
Nicolas Grekas
cfeb5bee07 fix tests 2019-05-28 09:50:59 +02:00
Fabien Potencier
4bd85343e6 [Messenger] Use real memory usage for --memory-limit 2019-05-27 21:38:51 +02:00
Fabien Potencier
97d378a3e2 Merge branch '4.3'
* 4.3:
  [Messenger] Disable the SchemaAssetsFilter when setup the transport
  [Messenger] Fix missing auto_setup for RedisTransport
  [Contracts] split in one package per sub-contracts
2019-05-27 08:43:27 +02:00
Fabien Potencier
e19de5455f bug #31625 [Messenger] Disable the SchemaAssetsFilter when setup the transport (vincenttouzet)
This PR was merged into the 4.3 branch.

Discussion
----------

[Messenger] Disable the SchemaAssetsFilter when setup the transport

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

Commits
-------

8cbb8f89ad [Messenger] Disable the SchemaAssetsFilter when setup the transport
2019-05-27 08:00:16 +02:00
Fabien Potencier
4c1df8a86c bug #31621 [Messenger] Fix missing auto_setup for RedisTransport (chalasr)
This PR was merged into the 4.3 branch.

Discussion
----------

[Messenger] Fix missing auto_setup for RedisTransport

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

Should be my last PR for messenger 4.3's Redis transport :)
Not having it makes it inconsistent with other transports and is especially annoying in tests.

Commits
-------

d27bc2a87d [Messenger] Fix missing auto_setup for RedisTransport
2019-05-27 07:59:06 +02:00
Robin Chalas
fbfe2dfa8a [Messenger] Use real memory usage for --memory-limit 2019-05-26 22:33:59 +02:00
Vincent Touzet
8cbb8f89ad [Messenger] Disable the SchemaAssetsFilter when setup the transport 2019-05-26 17:41:06 +02:00
Robin Chalas
d27bc2a87d [Messenger] Fix missing auto_setup for RedisTransport 2019-05-26 15:41:31 +02:00
Fabien Potencier
5dba412d30 Merge branch '4.3'
* 4.3: (22 commits)
  [Messenger] Fix incorrect error when symfony/serializer is missing
  Allow WrappedListener to describe uncallable listeners.
  [HttpClient] fix handling exceptions thrown before first mock chunk
  [Filesystem] fix wrong method call casing
  [HttpClient] fix test
  [Translation] Fixed issue with new vs old TranslatorInterface in TranslationDataCollector
  Don't reference symfony/security
  [HttpClient] display proper error message on TransportException when curl is used
  [FrameworkBundle] fix named autowiring aliases for TagAwareCacheInterface
  [Cache] improve logged messages
  [FrameworkBundle] improve cs
  [Mime][HttpFoundation] Added mime type audio/x-hx-aac-adts
  bumped Symfony version to 4.3.0
  updated VERSION for 4.3.0-BETA2
  updated CHANGELOG for 4.3.0-BETA2
  [HttpClient] Only use CURLMOPT_MAX_HOST_CONNECTIONS & CURL_VERSION_HTTP2 if defined
  [Security] fixed a fatal error when upgrading from 4.2
  [HttpClient] Allow arrays as query parameters
  Throws UnrecoverableMessageHandlingException when passed invalid entity manager name for Doctrine middlewares
  [Messenger] Make redis Connection::get() non blocking by default
  ...
2019-05-26 11:07:14 +02:00
Robin Chalas
4c83f11024 [Messenger] Fix incorrect error when symfony/serializer is missing 2019-05-26 02:34:38 +02:00
Fabien Potencier
65458059d8 feature #31471 [Messenger] Add "non sendable" stamps (weaverryan)
This PR was merged into the 4.3 branch.

Discussion
----------

[Messenger] Add "non sendable" stamps

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

Fixes a bug where Symfony serialization of the AmqpReceivedStamp sometimes caused problems.

It's still a mystery why the `AmqpReceivedStamp` caused a segfault *sometimes* when going through the Symfony serializer or the `VarDumper`. But, that stamp really didn't need to be sent on redelivery anyways.

I don't love making the removal the responsibility of the serializers, but it didn't work well anywhere else.

Cheers!

Commits
-------

34e7781c5c Adding a new NonSendableStampInterface to avoid sending certain stamps
2019-05-21 06:57:28 +02:00
Robin Chalas
229502a89a [Messenger] Make redis Connection::get() non blocking by default 2019-05-21 04:46:48 +02:00
Nicolas Grekas
beb603694d Merge branch '4.3'
* 4.3: (23 commits)
  minor: add some test in the ldap component
  [Workflow] Update MethodMarkingStore
  [Bridge\ProxyManager] isProxyCandidate() does not take into account interfaces
  adding experimental note
  [HttpClient] add missing argument check
  [Messenger] Fix undefined index on read timeout
  [Workflow] use method marking store
  [Routing][AnnotationClassLoader] fix utf-8 encoding in default route name
  fixed a phpdoc
  [Debug] Wrap call to require_once in a try/catch
  [EventDispatcher] Removed "callable" type hint from WrappedListener constructor
  prevent deprecation when filesize matches error code
  [PropertyInfo] Add missing documentation link in Readme
  Use the current working dir as default first arg in 'link' binary
  Respect parent class contract in ContainerAwareDoctrineEventManager
  [WebProfilerBundle][Form] The form data collector return serialized object when profiler bundle attends object
  [Validator] Add the missing translations for the Danish ("da") locale
  [PropertyAccess] Add missing property to PropertyAccessor
  [Cache] fix saving unrelated keys in recursive callback calls
  [Serializer] Fix denormalization of object with variadic constructor typed argument
  ...
2019-05-20 18:28:43 +02:00
Robin Chalas
fd8d6b8187 [Messenger] Fix undefined index on read timeout 2019-05-19 16:33:13 +02:00
Grégoire Pineau
519ba3cddb Merge remote-tracking branch 'origin/4.3'
* origin/4.3:
  deprecate calling createChildContext without the format parameter
  [EventDispatcher] Fix interface name used in error messages
  [FrameworkBundle] Add cache configuration for PropertyInfo
  Update dependencies in the main component
  Drop useless executable bit
  [Doctrine][PropertyInfo] Detect if the ID is writeable
  Add transport in subscriber's phpdoc
  [Validator] Autovalidation: skip readonly props
  [DI] default to service id - *not* FQCN - when building tagged locators
  [Cache] Log a more readable error message when saving into cache fails
  Update WorkflowEvents.php
  [Messenger] On failure retry, make message appear received from original sender
  [Messenger] remove send_and_handle option which can be achieved with SyncTransport
  Fixing tests - passing pdo is not wrapped for some reason in dbal
  Changing how RoutableMessageBus fallback bus works
  [Serializer] Fix BC break: DEPTH_KEY_PATTERN must be public
  [FrameworkBundle] Fixed issue when a parameter container a '%'
  Fix the interface incompatibility of EventDispatchers
  [TwigBundle] fixed Mailer integration in Twig
  [Form] Add intl/choice_translation_locale option to TimezoneType
2019-05-16 11:31:29 +02:00
Ryan Weaver
34e7781c5c Adding a new NonSendableStampInterface to avoid sending certain stamps
Fixes a bug where Symfony serialization of the AmqpReceivedStamp sometimes caused problems.
2019-05-13 09:49:50 -04:00
Samuel ROZE
6a542cd738 Add transport in subscriber's phpdoc 2019-05-12 16:09:02 +01:00
Fabien Potencier
22ffa5fcd6 feature #31454 [Messenger] remove send_and_handle which can be achieved with SyncTransport (Tobion)
This PR was merged into the 4.3 branch.

Discussion
----------

[Messenger] remove send_and_handle which can be achieved with SyncTransport

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | no
| New feature?  | yes/no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | yes     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please 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        | https://github.com/symfony/symfony-docs/issues/11236

The send_and_handle option is pretty awkward and we don't need it anymore because the same thing can be achieved with the SyncTransport from #30759

So the following example from the doc in https://symfony.com/doc/current/messenger.html#routing
```yaml
framework:
    messenger:
        routing:
            'My\Message\ThatIsGoingToBeSentAndHandledLocally':
                 senders: [amqp]
                 send_and_handle: true
```
is the same as
```yaml
framework:
    messenger:
        routing:
            'My\Message\ThatIsGoingToBeSentAndHandledLocally':
                 senders: [amqp, sync]
```

https://github.com/symfony/symfony/pull/31401#pullrequestreview-235396370

Commits
-------

4552b7f5b2 [Messenger] remove send_and_handle option which can be achieved with SyncTransport
2019-05-11 08:56:15 +02:00
Fabien Potencier
78003969f8 bug #31425 [Messenger] On failure retry, make message appear received from original sender (weaverryan)
This PR was squashed before being merged into the 4.3 branch (closes #31425).

Discussion
----------

[Messenger] On failure retry, make message appear received from original sender

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

Fixes a bug when using the transport-based handler config from #30958. This also adds a pretty robust integration test that dispatches a complex message with transport-based handler config, failures, failure transport, etc - and verifies the correct behavior.

Cheers!

Commits
-------

80b5df270f [Messenger] On failure retry, make message appear received from original sender
2019-05-11 08:54:00 +02:00
Ryan Weaver
80b5df270f [Messenger] On failure retry, make message appear received from original sender 2019-05-11 08:53:51 +02:00
Tobias Schultze
4552b7f5b2 [Messenger] remove send_and_handle option which can be achieved with SyncTransport 2019-05-11 08:47:26 +02:00
Tobias Schultze
fe0f324751 bug #31472 [Messenger] Fix routable message bus default bus (weaverryan)
This PR was merged into the 4.3 branch.

Discussion
----------

[Messenger] Fix routable message bus default bus

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

In #31288, we gave the `RoutableMessageBus` a "default" bus. We did that by using the `MessageBusInterface` service in the locator. But, no such service exists - I think that was just a huge oversight (and maybe @dirk39 named a bus this in the project he was testing on?). The services in the locator are very simply the keys under `framework.messenger.buses` or the default, which is a single `messenger.bus.default` id. There is an alias in the container for `MessageBusInterface`, but this is not added to the locator (and adding it would be a bit awkward, as `MessengerPass` is in the component and the interface alias is entirely a framework thing).

Cheers!

Commits
-------

42e0536d8f Changing how RoutableMessageBus fallback bus works
2019-05-11 08:29:54 +02:00
Ryan Weaver
a7cf3f997a Fixing tests - passing pdo is not wrapped for some reason in dbal 2019-05-10 14:00:00 -04:00
Ryan Weaver
42e0536d8f Changing how RoutableMessageBus fallback bus works 2019-05-10 13:35:34 -04:00
Nicolas Grekas
79814a2f3d Merge branch '4.3'
* 4.3:
  [Doctrine\Bridge] fix tests
  [Intl] Revise timezone name generation
  Simplifying SyncTransport and fixing bug with handlers transport
  [DomCrawler] fix HTML5 parser integration
2019-05-09 16:07:05 +02:00
Fabien Potencier
387207f6c4 updated version to 4.4 2019-05-09 09:23:25 +02:00
Ryan Weaver
8a49eb8660 Simplifying SyncTransport and fixing bug with handlers transport 2019-05-08 21:09:33 -04:00
Fabien Potencier
aac59b167f fixed tests 2019-05-08 22:09:05 +02:00
Fabien Potencier
72863e441f fixed CS 2019-05-08 19:18:10 +02:00
Ryan Weaver
ab3744961d Fixing missed tests from #31355 2019-05-07 10:25:03 -04:00
Ryan Weaver
9940e71ae1 fixing a bug where the delay queue name did not contain the final routing key 2019-05-06 21:02:46 -04:00
Alexander Schranz
072e466355 [Messenger] Fix rejecting of pending messages 2019-05-06 17:19:44 +02:00
Fabien Potencier
4e61ff535e bug #31387 [Messenger] Fix Redis Connection::get() after reject() (chalasr)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Messenger] Fix Redis Connection::get() after reject()

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

If a message is rejected, another consumer cannot read from the stream because the first subsequent call to `\Redis::xreadgroup()` returns false for some reason.
Reproducer: https://github.com/chalasr/redis-transport-bug

ping @alexander-schranz

Commits
-------

c05273f793 [Messenger] Fix Redis Connection::get() after reject()
2019-05-06 13:25:34 +02:00
Tobias Schultze
e8a09e9d85 [Messenger] fix wrong use of generator returns
And some other minor cleanups
2019-05-06 12:22:55 +02:00
Robin Chalas
c05273f793 [Messenger] Fix Redis Connection::get() after reject() 2019-05-05 18:23:23 +02:00
Robin Chalas
2d41976b26 [Messenger] Lowercased method calls on \Redis 2019-05-01 15:13:23 +02:00
Fabien Potencier
2eda6ff149 fixed typos 2019-05-01 10:08:00 +02:00
Fabien Potencier
1e35f24b19 feature #31288 [Messenger] RoutableMessageBus route to default bus (dirk39)
This PR was squashed before being merged into the 4.3-dev branch (closes #31288).

Discussion
----------

[Messenger] RoutableMessageBus route to default bus

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

Hi! I modified the behaviour of RoutableMessageBus to route message without BusNameStamp to default bus instead of raise an exception.

Made with ❤️ by [![Open Source Saturday](https://img.shields.io/badge/%E2%9D%A4%EF%B8%8F-open%20source%20saturday-F64060.svg)](https://www.meetup.com/it-IT/Open-Source-Saturday-Milano/)

Commits
-------

c4e5e83b56 [Messenger] RoutableMessageBus route to default bus
2019-05-01 10:06:51 +02:00
Dirk39
c4e5e83b56 [Messenger] RoutableMessageBus route to default bus 2019-05-01 10:06:42 +02:00
Fabien Potencier
798f8bbd03 fixed typos 2019-05-01 08:23:02 +02:00
Ryan Weaver
36487e5f44 [Messenger] Adding failure transport support 2019-05-01 08:21:53 +02:00
Samuel ROZE
584c21b137 feature #30958 [Messenger] Allows to register handlers on a specific transport (sroze)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Messenger] Allows to register handlers on a specific transport

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

With the #30008 pull-request in, we can now do the following:
```yaml
framework:
    messenger:
        transports:
            events:
                dsn: amqp://guest:guest@127.0.0.1/%2f/events
                options:
                    queues:
                        3rdparty:
                            binding_keys: [ 3rdparty ]
                        projection:
                            binding_keys: [ projection ]

            events_3rdparty: amqp://guest:guest@127.0.0.1/%2f/events?queues[3rdparty]
            events_projection: amqp://guest:guest@127.0.0.1/%2f/events?queues[projection]

        routing:
            'App\Message\RegisterBet': events
```

This will bind two queues to the `events` exchange, fantastic:
<img width="325" alt="Screenshot 2019-04-07 at 10 26 27" src="https://user-images.githubusercontent.com/804625/55680861-af373580-591f-11e9-8f1e-2d3b6ddba2fd.png">

---

Now, in this setup, the message will be duplicated within the `3rdparty` & `projection` queues. If you just run the consumer for each transport, it will consume the message and call all the handlers. You can't do different things based on which queue you have consumed the message. **This pull-request adds the following feature:**

```php
class RegisterBetHandler implements MessageSubscriberInterface
{
    public function __invoke(RegisterBet $message)
    {
        // Do something only when the message comes from the `events_projection` transport...
    }

    /**
     * {@inheritdoc}
     */
    public static function getHandledMessages(): iterable
    {
        yield RegisterBet::class => [
            'from_transport' => 'events_projection',
        ];
    }
}
```

---

In the debugger, it looks like this:
<img width="649" alt="Screenshot 2019-04-07 at 10 29 55" src="https://user-images.githubusercontent.com/804625/55680892-1d7bf800-5920-11e9-80f7-853f0201c6d8.png">

Commits
-------

f0b2acd67d Allows to register handlers on a specific transport (and get rid of this handler alias)
2019-04-28 22:25:38 +01:00
Samuel ROZE
8aa02358d6 minor #31298 [Messenger] Ensure that a TransportException is thrown on redis error (chalasr)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Messenger] Ensure that a TransportException is thrown on redis error

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

<!--
Write a short README entry for your feature/bugfix here (replace this comment block.)
This will help people understand your PR and can be used as a start of the Doc PR.
Additionally:
 - Bug fixes must be submitted against the lowest branch where they apply
   (lowest branches are regularly merged to upper ones so they get the fixes too).
 - Features and deprecations must be submitted against the master branch.
-->

Commits
-------

1857395137 [Messenger] Ensure that a TransportException is thrown on redis error
2019-04-28 16:31:46 +01:00
Samuel ROZE
f0b2acd67d Allows to register handlers on a specific transport (and get rid of this handler alias) 2019-04-28 16:17:32 +01:00
Samuel ROZE
96a7907979 feature #31282 [Messenger] Add WorkerStoppedEvent (chalasr)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Messenger] Add WorkerStoppedEvent

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

In 4.2, one was able to decorate a transport and hook into `TransportInterface::stop()` to perform some business tasks when the `messenger:consume` process gets killed.
In 4.3 the `stop()` logic has been moved to `Worker` which cannot be decorated when used via `messenger:consume`.
This PR adds a marker event dispatched when the worker is stopped to provide the same capability.

Briefly discussed with @weaverryan.
My use case:
I have a temporary CSV file locally which grows while consuming jobs.
This file is uploaded to AWS S3 and squashed once a while (every 5minutes). It is also uploaded when the `messenger:consume` process gets stopped (to store the remaining lines).
For the former (time-based upload), I can listen on `WorkflowMessageHandledEvent` to make the upload happens in case the 5 minutes delay is elapsed. This solves the latter.

Commits
-------

0e7898b622 [Messenger] Add WorkerStoppedEvent
2019-04-28 14:59:42 +01:00
Robin Chalas
1857395137 [Messenger] Ensure that a TransportException is thrown on redis error 2019-04-28 15:33:50 +02:00
Robin Chalas
0e7898b622 [Messenger] Add WorkerStoppedEvent 2019-04-27 20:22:09 +02:00
Fabien Potencier
09e5cc1096 feature #30917 [Messenger] Add a redis stream transport (soyuka, alexander-schranz)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Messenger] Add a redis stream transport

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

As discussed in #28681 this will refractor @soyuka implementation of redis using the redis stream features so we don't need to handle parking the messages ourself and redis is doing it for us.

Some interesting links about streams:

 - https://redis.io/topics/streams-intro
 - https://brandur.org/redis-streams

```
+-----------R
|    GET    | -> XREADGROUP
+-----------+
      |
      | handleMessage
      V
+-----------+  No
|  failed?  |---------------------------+
+-----------+                           |
      |                                 |
      | Yes                             |
      V                                 |
+-----------+  No                       |
|   retry?  |---------------------------+
+-----------+                           |
      |                                 |
      | Yes                             |
      V                                 V
+-----------R                     +-----------R
|   REJECT  | -> XDEL             |    ACK    | -> XACK
+-----------+                     +-----------+
```

**GET**: Will use `XREADGROUP` to read the one  message from the stream
**REJECT**: Reject will just remove the message with `XDEL` from the stream as adding it back to the stream is handled by symfony worker itself
**ACK**: Will use the `XACK` Method to ack the message for the specific group

The sender will still be simple by calling the `XADD` redis function.

#EU-FOSSA

Commits
-------

ff0b8554ea Refractor redis transport using redis streams
7162d2ec1d Implement redis transport
2019-04-27 17:54:07 +01:00
Fabien Potencier
d8f7553f6c minor #31259 Make error message more clear (fabpot)
This PR was merged into the 4.3-dev branch.

Discussion
----------

Make error message more clear

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

When you get the following error message `No transport supports the given DSN "...".`, you might think that this relates to a mailer transport or a messenger transport. Let's make this real clear.

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

cdcb6c9969 made error message more clear
2019-04-27 17:41:39 +01:00
Fabien Potencier
cdcb6c9969 made error message more clear 2019-04-27 17:32:05 +01:00
Robin Chalas
27d10a658d Merge branch '4.2'
* 4.2:
  Fix url matcher edge cases with trailing slash
  [Form] Fix author tag + exception messages
  [TwigBridge] Fix deprecation on twig 2.9
  Fix left-associative ternary deprecation warnings for PHP 7.4
  [Validator] Fixed imprecise translations
  [Validator] Add Dutch translations
  [Security] Cleanup "Digest nonce has expired." translation
  Intercept redirections only for HTML format
  [PhpUnitBridge] fix reading phpunit.xml on bootstrap
  resolve class name parameters
  Fix name and phpdoc of ContainerBuilder::removeBindings
  [Intl] Update the ICU data to 64.2
2019-04-27 14:01:28 +02:00
Nicolas Grekas
77f642ef39 feature #31204 [Messenger] ease testing and allow forking the middleware stack (nicolas-grekas)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Messenger] ease testing and allow forking the middleware stack

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

A less radical alternative than #31185 that preserves laziness and addresses the linked issue.

Commits
-------

3bdf4b0e0f [Messenger] ease testing and allow forking the middleware stack
2019-04-26 09:52:47 +02:00
thib92
3022a3675b Fix left-associative ternary deprecation warnings for PHP 7.4 2019-04-26 09:24:05 +02:00
Alexander Schranz
ff0b8554ea Refractor redis transport using redis streams 2019-04-26 01:06:54 +02:00
Robin Chalas
1e9a9b2c06 [FrameworkBundle] Drop unused private method 2019-04-25 15:38:48 +02:00
soyuka
7162d2ec1d Implement redis transport 2019-04-24 11:23:48 +02:00
Nicolas Grekas
3bdf4b0e0f [Messenger] ease testing and allow forking the middleware stack 2019-04-23 13:19:34 +02:00
Ryan Weaver
70b448d120 Reorganizing messenger serializer config and replacing base64_encode with addslashes 2019-04-15 10:26:02 -04:00
Nicolas Grekas
bc9c89eb44 Merge branch '4.2'
* 4.2:
  CS Fixes: Not double split with one array argument
2019-04-11 13:18:55 +02:00
Pablo Ogando Ferreira
93dabbc96a CS Fixes: Not double split with one array argument 2019-04-11 09:45:22 +02:00
Vincent Touzet
e2dbe63489 [Messenger] DoctrineTransport - Use InvalidArgumentException instead of TransportException during configuration checks 2019-04-07 09:39:29 +02:00
Fabien Potencier
3de3e4e8d9 feature #30913 [Messenger] Uses an AmqpStamp to provide flags and attributes (sroze)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Messenger] Uses an `AmqpStamp` to provide flags and attributes

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

Using the `AmqpStamp` you can configure the flags and any attribute (such as `delivery_mode`).

Commits
-------

56fa574023 Uses an `AmqpStamp` to provide flags and attributes
2019-04-06 21:18:37 +02:00
Samuel ROZE
56fa574023 Uses an AmqpStamp to provide flags and attributes 2019-04-06 21:05:34 +02:00
Christian Flothmann
ea5ff18014 Merge branch '4.2'
* 4.2:
  Restore previous state for libxml option
  fix tests
  Uses the SerializerStamp when deserializing the envelope
2019-04-06 17:38:43 +02:00
Samuel ROZE
ab55e8e7ef Uses the SerializerStamp when deserializing the envelope 2019-04-06 16:25:54 +02:00
Samuel ROZE
2e5e910229 Rename exception, add change log and a few other things 2019-04-06 14:41:06 +02:00
Jonas Elfering
e6e4cde5fc Ensure message is handled only once per handler
Add check to ensure that a message is only handled once per handler
Add try...catch to run all handlers before throwing exception
2019-04-06 14:40:48 +02:00
Samuel ROZE
e6eb43bd68 feature #30008 [messenger] Adds a stamp to provide a routing key on message publishing (G15N, sroze)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[messenger] Adds a stamp to provide a routing key on message publishing

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

Adds a stamp allowing to set a `routing_key` at `MessageBus::dispatch()` level.

```php
$message = (new Envelope('message'))->with(new RoutingKeyStamp('routing_key'));
$bus->dispatch($message);
```

Commits
-------

a515635f18 Simply code and rename "configuration" to "options"
3151b54b7a [messenger] AMQP configurable routing key & multiple queues
2019-04-06 14:39:32 +02:00
Samuel ROZE
a515635f18 Simply code and rename "configuration" to "options" 2019-04-06 14:27:04 +02:00
Samuel ROZE
9793522f6e minor #29525 [Messenger] Make MessengerPass less strict when auto-register handlers (nicholasruunu)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Messenger] Make MessengerPass less strict when auto-register handlers

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

This allows you to auto-register handlers that have more than one argument, which is useful when having custom middleware to pass more parameters.

#symfonyconhackday2018

Commits
-------

49ab2cd9d9 Make MessengerPass less strict when auto-register handlers
2019-04-06 12:29:02 +02:00
Samuel ROZE
550a569725 minor #30857 [Messenger] test DoctrineTransport on travis and appveyor (vincenttouzet)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Messenger] test DoctrineTransport on travis and appveyor

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

Currently tests on the `Symfony\Component\Messenger\Tests\Transport\Doctrine\DoctrineIntegrationTest` are skipped because there is no `MESSENGER_DOCTRINE_DSN` environment variable is not defined.

This PR update the travis and AppVeyor configuration to run these tests.

This is a WIP. I'm not a Travis/AppVeyor user so this clearly need more work

Commits
-------

8f81f55a46 [Messenger] test DoctrineTransport on travis and appveyor
2019-04-06 11:50:34 +02:00
Fabien Potencier
4b61602d51 removed unneeded tags 2019-04-06 11:45:29 +02:00
Guillaume Gammelin
3151b54b7a [messenger] AMQP configurable routing key & multiple queues 2019-04-06 11:39:12 +02:00
Fabien Potencier
45fd75ea20 fixed CS 2019-04-06 11:37:23 +02:00
Samuel ROZE
8f8c82e009 Make the in-memory transport resettable 2019-04-06 11:30:57 +02:00
Gary PEGEOT
fe759205c5 Add a "null://" transport 2019-04-06 11:18:10 +02:00
Vincent Touzet
8f81f55a46 [Messenger] test DoctrineTransport on travis and appveyor 2019-04-05 16:21:26 +02:00
Ryan Weaver
f7ec2d388a fixing unused variable names 2019-04-04 07:32:05 -04:00
Vincent Touzet
b2f3b53253 [Messenger] Setup the doctrine transport when consuming 2019-04-03 23:16:34 +02:00
Fabien Potencier
574097fd6a feature #30757 [Messenger] Adding MessageCountAwareInterface to get transport message count (weaverryan)
This PR was squashed before being merged into the 4.3-dev branch (closes #30757).

Discussion
----------

[Messenger] Adding MessageCountAwareInterface to get transport message count

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

This adds a new optional interface that receivers should implement to give an approximate number of the messages "waiting" to be handled. Why? Because, with this, you could design a system that dynamically adds/removes worker processes if a specific transport is getting slammed and needs help. Creating that system could be something we discuss for core later, but this at least makes it possible - and means it could be implemented by the user or in a bundle... which I might do if we don't get it in core ;).

Commits
-------

fc5b0cf570 [Messenger] Adding MessageCountAwareInterface to get transport message count
2019-04-03 16:45:30 +02:00
Ryan Weaver
fc5b0cf570 [Messenger] Adding MessageCountAwareInterface to get transport message count 2019-04-03 16:45:22 +02:00
Fabien Potencier
b921076df4 bug #30805 [Messenger] bug fixes in Doctrine Transport (vincenttouzet)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Messenger] bug fixes in Doctrine Transport

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

Just tested the new Doctrine transport and I've see 3 bugs so far :
- [x] The message is not return by the transport
- [x] The headers column must be of type TEXT and not just STRING
- [ ] When using the PhpSerializer the message is truncated (PR: https://github.com/symfony/symfony/pull/30814)

The body in database looks like this :
```
O:36:"Symfony\Component\Messenger\Envelope":2:{s:44:"
```

The body given by the serializer is the following :
```
O:36:"Symfony\Component\Messenger\Envelope":2:{s:44:"Symfony\Component\Messenger\Envelopestamps";a:3:{s:49:"Symfony\Component\Messenger\Stamp\SerializerStamp";a:1:{i:0;O:49:"Symfony\Component\Messenger\Stamp\SerializerStamp":1:{s:58:"Symfony\Component\Messenger\Stamp\SerializerStampcontext";a:0:{}}}s:46:"Symfony\Component\Messenger\Stamp\BusNameStamp";a:1:{i:0;O:46:"Symfony\Component\Messenger\Stamp\BusNameStamp":1:{s:55:"Symfony\Component\Messenger\Stamp\BusNameStampbusName";s:21:"messenger.bus.default";}}s:43:"Symfony\Component\Messenger\Stamp\SentStamp";a:1:{i:0;O:43:"Symfony\Component\Messenger\Stamp\SentStamp":2:{s:56:"Symfony\Component\Messenger\Stamp\SentStampsenderClass";s:64:"Symfony\Component\Messenger\Transport\Doctrine\DoctrineTransport";s:56:"Symfony\Component\Messenger\Stamp\SentStampsenderAlias";s:16:"environment.stop";}}}s:45:"Symfony\Component\Messenger\Envelopemessage";O:34:"App\Message\EnvironmentStopMessage":1:{s:51:"App\Message\AbstractEnvironmentMessageenvironment";O:22:"App\Entity\Environment":5:{s:26:"App\Entity\Environmentid";s:36:"3bade252-b7a9-4188-82bd-3e68129e0da7";s:37:"App\Entity\EnvironmentrepositoryUrl";s:6:"string";s:30:"App\Entity\Environmentbranch";s:6:"string";s:33:"App\Entity\EnvironmenthostNames";a:1:{i:0;N;}s:27:"App\Entity\Environmentenv";a:2:{s:7:"APP_ENV";s:4:"prod";s:7:"APP_VAR";s:13:"example value";}}}}
```

Commits
-------

27466498d0 [Messenger] Fix get in Doctrine Transport
2019-04-01 16:43:38 +02:00
Ryan Weaver
fe7ad812c7 base64_encoding inside PhpSerializer to avoid null characters 2019-04-01 08:36:54 -04:00
Fabien Potencier
96dee1ee20 [Messenger] fixed missing use statement 2019-03-31 22:37:12 +02:00
Fabien Potencier
1044dfb93d [Messenger] simplified code 2019-03-31 22:18:13 +02:00
Vincent Touzet
27466498d0 [Messenger] Fix get in Doctrine Transport 2019-03-31 20:44:41 +02:00
Fabien Potencier
9669e13554 [Messenger] made a const private 2019-03-31 19:35:08 +02:00
Fabien Potencier
dafc357fb9 minor #30803 [Messenger] Remove unused option in the Doctrine transport (vincenttouzet)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Messenger] Remove unused option in the Doctrine transport

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

This PR remove the unused option `loop_sleep` in the Messenger Doctrine transport

Commits
-------

4811400372 [Messenger] Remove unused option in the Doctrine transport
2019-03-31 19:33:19 +02:00
Fabien Potencier
c54a6a2e1a minor #30802 [Messenger] Add psr/cache on Messenger's dependencies (sroze)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Messenger] Add `psr/cache` on Messenger's dependencies

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

Commits
-------

0b5004f59f Add `psr/cache` on Messenger's dependencies
2019-03-31 19:32:16 +02:00
Samuel ROZE
0b5004f59f Add psr/cache on Messenger's dependencies 2019-03-31 18:23:22 +01:00
Nicolas Grekas
6070151495 minor #30800 [Messenger] fix review (nicolas-grekas)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Messenger] fix review

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

Fixes my review left in #30754
/cc @weaverryan FYI

Commits
-------

a3de9020c8 [Messenger] fix review
2019-03-31 19:13:48 +02:00
Vincent Touzet
4811400372 [Messenger] Remove unused option in the Doctrine transport 2019-03-31 19:12:50 +02:00
Nicolas Grekas
a3de9020c8 [Messenger] fix review 2019-03-31 19:00:04 +02:00