Commit Graph

44013 Commits

Author SHA1 Message Date
Alexander M. Turek
1b880677d4 Add types to private and final methods. 2019-08-18 11:59:28 +02:00
Alexander M. Turek
20ff512269 [Process] Added missing return type. 2019-08-18 11:18:30 +02:00
Alexander M. Turek
fed395de4e [Process] Doc block backport. 2019-08-18 11:12:38 +02:00
Alexander M. Turek
c76fd13848 Added doc block for Registry::supports(). 2019-08-18 10:46:59 +02:00
Fabien Potencier
ff63bb325d feature #32783 [Messenger] InMemoryTransport handle acknowledged and rejected messages (tienvx)
This PR was merged into the 4.4 branch.

Discussion
----------

[Messenger] InMemoryTransport handle acknowledged and rejected messages

| Q             | A
| ------------- | ---
| Branch?       | 4.4 <!-- see below -->
| Bug fix?      | no
| New feature?  | yes <!-- 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 | #...   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs/pull/12045 <!-- required for new features -->

This PR do 2 things:
* Limit receiving messages from InMemoryTransport to 1 (reverted, another PR will fix the bug: worker does not stop when receiver return more messages than the number specify by the `--limit` option)
* Handle acknowledged and rejected messages in InMemoryTransport. Currently, it does not care about acknowledged and rejected messages. So it always return all messages that have been sent. So if we run console command `messenger:consume`, it will never stop, even though we set the `--limit` option.

For more information, please check the [reproduction](https://github.com/tienvx/symfony-messenger-in-memory-reproduction) project for the expected behavior.

See also my [messenger-memory-transport](https://github.com/tienvx/messenger-memory-transport) project

Commits
-------

71e7bdff22 [Messenger] InMemoryTransport handle acknowledged and rejected messages
2019-08-18 10:25:08 +02:00
Fabien Potencier
431ead273a bug #33127 [Messenger] make delay exchange and queues durable like the normal ones by default (Tobion)
This PR was merged into the 4.3 branch.

Discussion
----------

[Messenger] make delay exchange and queues durable like the normal ones by default

| 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 | #32891
| License       | MIT
| Doc PR        |

This also imrproves BC of #32631 by only adding the new expiry argument in case the delay queue name was not overwritten using the options. I will remove the checks in 4.4 again. Please merge this PR before releasing the new 4.3 version so that 32631 and this PR are part of one release.

Commits
-------

e5ecda6de1 [Messenger] make delay exchange and queues durable like the normal ones by default
2019-08-18 10:19:16 +02:00
Fabien Potencier
9130c6ad1a bug #33140 [Intl] Full alpha3 language support (ro0NL)
This PR was merged into the 4.4 branch.

Discussion
----------

[Intl] Full alpha3 language support

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

I'll validate some more cases with tests.

Commits
-------

29aee2ddf2 [Intl] Full alpha3 language support
2019-08-18 10:17:19 +02:00
Fabien Potencier
98e86816ad feature #33155 [ErrorHandler] Added call() method utility to turns any PHP error into \ErrorException (yceruto)
This PR was merged into the 4.4 branch.

Discussion
----------

[ErrorHandler] Added call() method utility to turns any PHP error into \ErrorException

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

**Issue**

There is no easy way to catch PHP warnings, though some progress has been made in this area for PHP 8.0 (https://wiki.php.net/rfc/consistent_type_errors).

**Before**
```php
$file = file_get_contents('unknown.txt');
// PHP Warning:  file_get_contents(unknown.txt): failed to open stream: No such file or directory

// workaround:
$file = @file_get_contents('unknown.txt');
if (false === $file) {
    $e = error_get_last();
    throw new \ErrorException($e['message'], 0, $e['type'], $e['file'], $e['line']);
}
```

**After**
```php
$file = ErrorHandler::call('file_get_contents', 'unknown.txt');

// or
$file = ErrorHandler::call(static function () {
    return file_get_contents('unknown.txt');
});

// or (PHP 7.4)
$file = ErrorHandler::call(fn () => file_get_contents('unknown.txt'));
```

All credits to @nicolas-grekas https://github.com/symfony/symfony/issues/32936#issuecomment-518152681 and @vudaltsov for the idea.

Commits
-------

0faa855b5e Added ErrorHandler::call() method utility to turns any PHP warnings into `\ErrorException`
2019-08-18 10:09:38 +02:00
Fabien Potencier
6ee1f0b6f2 bug #33187 [Intl] Validate country preferred alpha code mapping (ro0NL)
This PR was merged into the 4.4 branch.

Discussion
----------

[Intl] Validate country preferred alpha code mapping

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

Use the same approach for the preferred alpha2-to-alpha3 code mapping, like Languages does. It provides us some more support in terms of maintenance.

The added `CD => COD` was previously implied based on ordering upstream.

Commits
-------

345305904b [Intl] Validate region preferred alpha code mapping
2019-08-18 10:05:02 +02:00
Nicolas Grekas
76bb1fca5c minor #33197 Fix some docblocks (derrabus)
This PR was merged into the 3.4 branch.

Discussion
----------

Fix some docblocks

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

Backports from #33154.

Commits
-------

df89373e62 Fix some docblocks.
2019-08-18 09:33:13 +02:00
Nicolas Grekas
a553173439 minor #33220 [Cache] Fix predis test (xuanquynh)
This PR was submitted for the 4.4 branch but it was squashed and merged into the 4.3 branch instead (closes #33220).

Discussion
----------

[Cache] Fix predis test

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| 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 | N/A #...   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

If `REDIS_HOST` is different from "localhost", `PredisAdapterTest` will go wrong.

Try these instructions below:
```bash
export REDIS_HOST=another_than_localhost
./phpunit src/Symfony/Component/Cache/Tests
```

> note: configure redis server with hostname "another_than_localhost"
![Screenshot from 2019-08-18 09-40-57](https://user-images.githubusercontent.com/16967350/63219445-667c6c80-c19c-11e9-9fce-ec42837ddf27.png)

Commits
-------

99f73fcca8 [Cache] Fix predis test
2019-08-18 09:29:43 +02:00
Quynh Xuan Nguyen
99f73fcca8 [Cache] Fix predis test 2019-08-18 09:29:35 +02:00
tien.xuan.vo
71e7bdff22 [Messenger] InMemoryTransport handle acknowledged and rejected messages 2019-08-18 09:00:51 +07:00
Fabien Potencier
d77d89d74f bug #33210 [Mailer] Don't duplicate addresses in Sendgrid Transport (pierredup)
This PR was merged into the 4.3 branch.

Discussion
----------

[Mailer] Don't duplicate addresses in Sendgrid Transport

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

Sendgrid requires the `to`, `cc` and `bcc` fields to be unique

Commits
-------

2706a9763f Don't duplicate addresses in Sendgrid Transport
2019-08-17 13:06:15 +02:00
Tobias Schultze
9c1e8acf80 minor #33208 Remove unnecessary statement (david-binda)
This PR was merged into the 4.3 branch.

Discussion
----------

Remove unnecessary statement

The casting of `$id` to string inside the second foreach loop in `\Symfony\Component\DependencyInjection\Dumper\PhpDumper::addMethodMap` is redundant, as the variable is not used after the casting inside nor outside the loop (while still in the loop, it gets overridden upon next iteration).

| Q             | A
| ------------- | ---
| Branch?       | 4.4 for features / 3.4 or 4.3 for bug fixes <!-- see below -->
| 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 | #33206   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | no <!-- 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 branch 4.4.
 - Legacy code removals go to the master branch.
-->

Commits
-------

cde223ad2a Remove unnecessary statement
2019-08-17 02:20:27 +02:00
Fabien Potencier
3522590290 feature #33203 [Mailer] Add support for the queued flag in the EmailCount assertion (fabpot)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mailer] Add support for the queued flag in the EmailCount assertion

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | yes
| 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 | n/a
| License       | MIT
| Doc PR        | -

<!--
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 branch 4.4.
 - Legacy code removals go to the master branch.
-->

Commits
-------

afb1c04c35 [Mailer] added a way to test the number of queued emails
2019-08-16 21:40:14 +02:00
Fabien Potencier
afb1c04c35 [Mailer] added a way to test the number of queued emails 2019-08-16 21:31:41 +02:00
Pierre du Plessis
2706a9763f
Don't duplicate addresses in Sendgrid Transport 2019-08-16 20:11:33 +02:00
david-binda
cde223ad2a Remove unnecessary statement
The casting of `$id` to string inside the second foreach loop in `\Symfony\Component\DependencyInjection\Dumper\PhpDumper::addMethodMap` is redundant, as the variable is not used after the casting inside nor outside the loop (while still in the loop, it gets overriden upon next iteration).

Fixes #33206
2019-08-16 17:14:15 +02:00
Nicolas Grekas
940eabb121 Merge branch '4.3' into 4.4
* 4.3:
  [VarDumper] Remove useless variable
  [Console] Fix incomplete output mock.
  [Serializer] Fixed docblocks and parameter names.
2019-08-16 08:37:15 +02:00
Nicolas Grekas
6d6cea2baa Merge branch '3.4' into 4.3
* 3.4:
  [VarDumper] Remove useless variable
  [Serializer] Fixed docblocks and parameter names.
2019-08-16 08:36:19 +02:00
Nicolas Grekas
bb41d53c06 minor #33182 [VarDumper] Add types to private methods (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

[VarDumper] Add types to private methods

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

backport from #33153

Commits
-------

065acc816f [VarDumper] Add types to private methods.
2019-08-16 08:22:44 +02:00
Nicolas Grekas
73dcf71378 minor #33186 [Serializer] Fixed docblocks and parameter names (derrabus)
This PR was merged into the 3.4 branch.

Discussion
----------

[Serializer] Fixed docblocks and parameter names

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

Backports from #33185.

Commits
-------

50701fed9f [Serializer] Fixed docblocks and parameter names.
2019-08-16 08:19:18 +02:00
Nicolas Grekas
a3a4b190f3 minor #33199 [VarDumper] Remove useless variable (ismail1432)
This PR was submitted for the 4.4 branch but it was squashed and merged into the 3.4 branch instead (closes #33199).

Discussion
----------

 [VarDumper] Remove useless variable

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

I think  `$out` variable is useless in both case

Commits
-------

df47058c55  [VarDumper] Remove useless variable
2019-08-16 07:43:03 +02:00
Smaine Milianni
df47058c55 [VarDumper] Remove useless variable 2019-08-16 07:42:55 +02:00
Robin Chalas
15cd8cfd43 minor #33194 [Console] Fix incomplete output mock (derrabus)
This PR was merged into the 4.3 branch.

Discussion
----------

[Console] Fix incomplete output mock

| 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

Backport from #33153. Merging this up should fix the broken tests on 4.4 and master.

Commits
-------

6ecbcf6f22 [Console] Fix incomplete output mock.
2019-08-16 04:37:03 +02:00
Alexander M. Turek
df89373e62 Fix some docblocks. 2019-08-16 02:50:45 +02:00
Alexander M. Turek
6ecbcf6f22 [Console] Fix incomplete output mock. 2019-08-16 01:33:50 +02:00
Roland Franssen
345305904b [Intl] Validate region preferred alpha code mapping 2019-08-15 15:06:57 +02:00
Alexander M. Turek
50701fed9f [Serializer] Fixed docblocks and parameter names. 2019-08-15 13:43:21 +02:00
Nicolas Grekas
26cc652a79 bug #33184 [DI] fix dumping lazy proxies (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[DI] fix dumping lazy proxies

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

Commits
-------

2ec1dd9628 [DI] fix dumping lazy proxies
2019-08-15 12:47:29 +02:00
Nicolas Grekas
2ec1dd9628 [DI] fix dumping lazy proxies 2019-08-15 11:38:48 +02:00
Nicolas Grekas
604a69fee7 Merge branch '4.3' into 4.4
* 4.3:
  [ProxyManagerBridge] remove false positive test case
2019-08-15 11:20:30 +02:00
Nicolas Grekas
97148313fe Merge branch '3.4' into 4.3
* 3.4:
  [ProxyManagerBridge] remove false positive test case
2019-08-15 11:18:47 +02:00
Nicolas Grekas
628271db2f [ProxyManagerBridge] remove false positive test case 2019-08-15 11:17:58 +02:00
Alexander M. Turek
065acc816f [VarDumper] Add types to private methods. 2019-08-15 11:17:12 +02:00
Nicolas Grekas
3fa8ad0859 Merge branch '4.3' into 4.4
* 4.3:
  [ProxyManager] fix closure binding
  [VarDumper] fix annotations
  [Console] fixed a PHP notice when there is no function
2019-08-15 10:52:52 +02:00
Nicolas Grekas
8aff3ad611 Merge branch '3.4' into 4.3
* 3.4:
  [ProxyManager] fix closure binding
  [VarDumper] fix annotations
  [Console] fixed a PHP notice when there is no function
2019-08-15 10:50:12 +02:00
Nicolas Grekas
1e47f0fe47 minor #33180 [ProxyManager] fix closure binding (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[ProxyManager] fix closure binding

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

Follows #32992

Commits
-------

31f920850a [ProxyManager] fix closure binding
2019-08-15 10:47:41 +02:00
Nicolas Grekas
31f920850a [ProxyManager] fix closure binding 2019-08-15 10:42:18 +02:00
Nicolas Grekas
4d4b6473c0 bug #33177 [Lock] trigger a deprecation not a notice (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Lock] trigger a deprecation not a notice

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

Commits
-------

21554aa8a5 trigger a deprecation not a notice
2019-08-15 10:38:08 +02:00
Nicolas Grekas
08147ddb9b bug #33172 [Console] fixed a PHP notice when there is no function in the stack trace of an Exception (fabpot)
This PR was merged into the 3.4 branch.

Discussion
----------

[Console] fixed a PHP notice when there is no function in the stack trace of an Exception

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| 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 | n/a
| License       | MIT
| Doc PR        | n/a

Under certain circumstances, the `function` is not present in the stack trace. That's the case for instance when an error occurs on a line like this one `return require "somefile";`.

Commits
-------

ddb47358ae [Console] fixed a PHP notice when there is no function
2019-08-15 10:36:31 +02:00
Nicolas Grekas
eb91f5f2f7 minor #33179 [VarDumper] fix annotations (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[VarDumper] fix annotations

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

Found in #33153

Commits
-------

82f4766498 [VarDumper] fix annotations
2019-08-15 10:35:39 +02:00
Nicolas Grekas
82f4766498 [VarDumper] fix annotations 2019-08-15 10:03:47 +02:00
Christian Flothmann
21554aa8a5 trigger a deprecation not a notice 2019-08-15 09:51:39 +02:00
Fabien Potencier
ddb47358ae [Console] fixed a PHP notice when there is no function 2019-08-14 18:49:41 +02:00
Fabien Potencier
876cec7c45 [Mailer] fixed missing property assignment 2019-08-14 17:19:53 +02:00
Nicolas Grekas
320e49576e feature #30323 [ErrorHandler] trigger deprecation in DebugClassLoader when child class misses a return type (fancyweb, nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[ErrorHandler] trigger deprecation in DebugClassLoader when child class misses a return type

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/issues/30123
| License       | MIT
| Doc PR        | TODO

I wanted to push something to show the advancement and get feedback.

I pushed two versions : one with dedicated functions for code clarity (DebugClassLoader.php) and one withtout (DebugClassLoader___.php). It would be nice if some people with Blackfire could compare the performances.

So let's be clear, we are never gonna be able to cover all cases! We can however cover the vast majority.

Current non covered cases and problems :
- We assume that if there is more than 2 returned types, we cannot do anything. Even if it could technically be possible.
- We assume that any returned type that doesn't fit our "returnable" types list is a class. We don't check at all if this class actualy exists.
- We don't handle spaces in types. The types stop at the first space.
- That means we don't handle (yet) the callable type with spaces (cf https://github.com/symfony/symfony/issues/29969)
- Vendor code extending other vendor core triggers the deprecations 😕

Commits
-------

aa338c8b42 Import return annotations from vendors
10fc13e4a7 [ErrorHandler] Handle return types in DebugClassLoader
2019-08-14 15:35:48 +02:00
Nicolas Grekas
aa338c8b42 Import return annotations from vendors 2019-08-14 15:27:41 +02:00
Nicolas Grekas
c8e15e182a Merge branch '4.3' into 4.4
* 4.3:
  cs fix
2019-08-14 15:26:12 +02:00