Merge branch '4.2'

* 4.2:
  typo
  [Messenger] Mention HandleTrait in UPGRADE-4.2.md file
  add a test case
  [Form] Handle all case variants of "nan" when parsing a number
This commit is contained in:
Nicolas Grekas 2018-11-30 09:55:46 +01:00
commit 6da7afc746
4 changed files with 15 additions and 21 deletions

View File

@ -199,7 +199,10 @@ Messenger
---------
* The `MiddlewareInterface::handle()` and `SenderInterface::send()` methods must now return an `Envelope` instance.
* The return value of handlers is ignored. If you used to return a value, e.g in query bus handlers, you can either:
* The return value of handlers isn't forwarded anymore by middleware and buses.
If you used to return a value, e.g in query bus handlers, you can either:
- get the result from the `HandledStamp` in the envelope returned by the bus.
- use the `HandleTrait` to leverage a message bus, expecting a single, synchronous message handling and returning its result.
- make your `Query` mutable to allow setting & getting a result:
```php
// When dispatching:
@ -209,15 +212,6 @@ Messenger
// In your handler:
$query->setResult($yourResult);
```
- define a callable on your `Query` to be called in your handler:
```php
// When dispatching:
$bus->dispatch(new Query([$this, 'onResult']));
// In your handler:
$query->executeCallback($yourResult);
```
* The `EnvelopeAwareInterface` was removed and the `MiddlewareInterface::handle()` method now requires an `Envelope` object
as first argument. When using built-in middleware with the provided `MessageBus`, you will not have to do anything.
If you use your own `MessageBusInterface` implementation, you must wrap the message in an `Envelope` before passing it to middleware.

View File

@ -146,7 +146,7 @@ class NumberToLocalizedStringTransformer implements DataTransformerInterface
return;
}
if ('NaN' === $value) {
if (\in_array($value, array('NaN', 'NAN', 'nan'), true)) {
throw new TransformationFailedException('"NaN" is not a valid number');
}

View File

@ -514,24 +514,24 @@ class NumberToLocalizedStringTransformerTest extends TestCase
/**
* @expectedException \Symfony\Component\Form\Exception\TransformationFailedException
* @dataProvider nanRepresentationProvider
*
* @see https://github.com/symfony/symfony/issues/3161
*/
public function testReverseTransformDisallowsNaN()
public function testReverseTransformDisallowsNaN($nan)
{
$transformer = new NumberToLocalizedStringTransformer();
$transformer->reverseTransform('NaN');
$transformer->reverseTransform($nan);
}
/**
* @expectedException \Symfony\Component\Form\Exception\TransformationFailedException
*/
public function testReverseTransformDisallowsNaN2()
public function nanRepresentationProvider()
{
$transformer = new NumberToLocalizedStringTransformer();
$transformer->reverseTransform('nan');
return array(
array('nan'),
array('NaN'), // see https://github.com/symfony/symfony/issues/3161
array('NAN'),
);
}
/**

View File

@ -112,7 +112,7 @@ interface ExecutionContextInterface
* Returns the currently validated object.
*
* If the validator is currently validating a class constraint, the
* object of that class is returned. If it is a validating a property or
* object of that class is returned. If it is validating a property or
* getter constraint, the object that the property/getter belongs to is
* returned.
*