Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit f9c9ca0

Browse filesBrowse files
committed
[Messenger] Move data collector & command into the component
1 parent fb172ca commit f9c9ca0
Copy full SHA for f9c9ca0

File tree

Expand file treeCollapse file tree

6 files changed

+148
-12
lines changed
Filter options
Expand file treeCollapse file tree

6 files changed

+148
-12
lines changed

‎src/Symfony/Bundle/FrameworkBundle/Resources/config/console.xml

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/Resources/config/console.xml
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@
6969
<tag name="console.command" command="debug:event-dispatcher" />
7070
</service>
7171

72-
<service id="console.command.messenger_consume_messages" class="Symfony\Bundle\FrameworkBundle\Command\MessengerConsumeMessagesCommand">
72+
<service id="console.command.messenger_consume_messages" class="Symfony\Component\Messenger\Command\ConsumeMessagesCommand">
7373
<argument type="service" id="message_bus" />
7474
<argument type="service" id="messenger.receiver_locator" />
7575

‎src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.xml

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.xml
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
<tag name="monolog.logger" channel="messenger" />
5959
</service>
6060

61-
<service id="data_collector.messenger" class="Symfony\Bundle\FrameworkBundle\DataCollector\MessengerDataCollector">
61+
<service id="data_collector.messenger" class="Symfony\Component\Messenger\DataCollector\MessengerDataCollector">
6262
<tag name="data_collector" template="@WebProfiler/Collector/messenger.html.twig" id="messenger" priority="100" />
6363
<tag name="message_bus_middleware" />
6464
</service>

‎src/Symfony/Bundle/FrameworkBundle/Command/MessengerConsumeMessagesCommand.php renamed to ‎src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php
+4-2Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
* file that was distributed with this source code.
1010
*/
1111

12-
namespace Symfony\Bundle\FrameworkBundle\Command;
12+
namespace Symfony\Component\Messenger\Command;
1313

1414
use Psr\Container\ContainerInterface;
1515
use Symfony\Component\Console\Command\Command;
@@ -24,8 +24,10 @@
2424

2525
/**
2626
* @author Samuel Roze <samuel.roze@gmail.com>
27+
*
28+
* @experimental in 4.1
2729
*/
28-
class MessengerConsumeMessagesCommand extends Command
30+
class ConsumeMessagesCommand extends Command
2931
{
3032
protected static $defaultName = 'messenger:consume-messages';
3133

‎src/Symfony/Bundle/FrameworkBundle/DataCollector/MessengerDataCollector.php renamed to ‎src/Symfony/Component/Messenger/DataCollector/MessengerDataCollector.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Messenger/DataCollector/MessengerDataCollector.php
+9-7Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
* file that was distributed with this source code.
1010
*/
1111

12-
namespace Symfony\Bundle\FrameworkBundle\DataCollector;
12+
namespace Symfony\Component\Messenger\DataCollector;
1313

1414
use Symfony\Component\HttpFoundation\Request;
1515
use Symfony\Component\HttpFoundation\Response;
@@ -18,6 +18,8 @@
1818

1919
/**
2020
* @author Samuel Roze <samuel.roze@gmail.com>
21+
*
22+
* @experimental in 4.1
2123
*/
2224
class MessengerDataCollector extends DataCollector implements MiddlewareInterface
2325
{
@@ -26,7 +28,7 @@ class MessengerDataCollector extends DataCollector implements MiddlewareInterfac
2628
*/
2729
public function collect(Request $request, Response $response, \Exception $exception = null)
2830
{
29-
return $this->data;
31+
// noop
3032
}
3133

3234
/**
@@ -61,25 +63,25 @@ public function handle($message, callable $next)
6163
try {
6264
$result = $next($message);
6365

64-
if (is_object($result)) {
66+
if (\is_object($result)) {
6567
$debugRepresentation['result'] = array(
66-
'type' => get_class($result),
68+
'type' => \get_class($result),
6769
'object' => $this->cloneVar($result),
6870
);
69-
} elseif (is_array($result)) {
71+
} elseif (\is_array($result)) {
7072
$debugRepresentation['result'] = array(
7173
'type' => 'array',
7274
'object' => $this->cloneVar($result),
7375
);
7476
} else {
7577
$debugRepresentation['result'] = array(
76-
'type' => gettype($result),
78+
'type' => \gettype($result),
7779
'value' => $result,
7880
);
7981
}
8082
} catch (\Throwable $exception) {
8183
$debugRepresentation['exception'] = array(
82-
'type' => get_class($exception),
84+
'type' => \get_class($exception),
8385
'message' => $exception->getMessage(),
8486
);
8587
}
+130Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Symfony package.
5+
*
6+
* (c) Fabien Potencier <fabien@symfony.com>
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
namespace Symfony\Component\Messenger\Tests\DataCollector;
13+
14+
use PHPUnit\Framework\TestCase;
15+
use Symfony\Component\Messenger\DataCollector\MessengerDataCollector;
16+
use Symfony\Component\Messenger\Tests\Fixtures\DummyMessage;
17+
use Symfony\Component\VarDumper\Test\VarDumperTestTrait;
18+
19+
/**
20+
* @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
21+
*/
22+
class MessengerDataCollectorTest extends TestCase
23+
{
24+
use VarDumperTestTrait;
25+
26+
/**
27+
* @dataProvider getHandleTestData
28+
*/
29+
public function testHandle($returnedValue, $expected)
30+
{
31+
$collector = new MessengerDataCollector();
32+
$message = new DummyMessage('dummy message');
33+
34+
$next = $this->createPartialMock(\stdClass::class, array('__invoke'));
35+
$next->expects($this->once())->method('__invoke')->with($message)->willReturn($returnedValue);
36+
37+
$this->assertSame($returnedValue, $collector->handle($message, $next));
38+
39+
$messages = $collector->getMessages();
40+
$this->assertCount(1, $messages);
41+
42+
$this->assertDumpMatchesFormat($expected, $messages[0]);
43+
}
44+
45+
public function getHandleTestData()
46+
{
47+
$messageDump = <<<DUMP
48+
"message" => array:2 [
49+
"type" => "Symfony\Component\Messenger\Tests\Fixtures\DummyMessage"
50+
"object" => Symfony\Component\VarDumper\Cloner\Data {%A
51+
%A+class: "Symfony\Component\Messenger\Tests\Fixtures\DummyMessage"%A
52+
}
53+
]
54+
DUMP;
55+
56+
yield 'no returned value' => array(
57+
null,
58+
<<<DUMP
59+
array:2 [
60+
$messageDump
61+
"result" => array:2 [
62+
"type" => "NULL"
63+
"value" => null
64+
]
65+
]
66+
DUMP
67+
);
68+
69+
yield 'scalar returned value' => array(
70+
'returned value',
71+
<<<DUMP
72+
array:2 [
73+
$messageDump
74+
"result" => array:2 [
75+
"type" => "string"
76+
"value" => "returned value"
77+
]
78+
]
79+
DUMP
80+
);
81+
82+
yield 'array returned value' => array(
83+
array('returned value'),
84+
<<<DUMP
85+
array:2 [
86+
$messageDump
87+
"result" => array:2 [
88+
"type" => "array"
89+
"object" => Symfony\Component\VarDumper\Cloner\Data {%A
90+
]
91+
]
92+
DUMP
93+
);
94+
}
95+
96+
public function testHandleWithException()
97+
{
98+
$collector = new MessengerDataCollector();
99+
$message = new DummyMessage('dummy message');
100+
101+
$expectedException = new \RuntimeException('foo');
102+
$next = $this->createPartialMock(\stdClass::class, array('__invoke'));
103+
$next->expects($this->once())->method('__invoke')->with($message)->willThrowException($expectedException);
104+
105+
try {
106+
$collector->handle($message, $next);
107+
} catch (\Throwable $actualException) {
108+
$this->assertSame($expectedException, $actualException);
109+
}
110+
111+
$messages = $collector->getMessages();
112+
$this->assertCount(1, $messages);
113+
114+
$this->assertDumpMatchesFormat(<<<DUMP
115+
array:2 [
116+
"message" => array:2 [
117+
"type" => "Symfony\Component\Messenger\Tests\Fixtures\DummyMessage"
118+
"object" => Symfony\Component\VarDumper\Cloner\Data {%A
119+
%A+class: "Symfony\Component\Messenger\Tests\Fixtures\DummyMessage"%A
120+
}
121+
]
122+
"exception" => array:2 [
123+
"type" => "RuntimeException"
124+
"message" => "foo"
125+
]
126+
]
127+
DUMP
128+
, $messages[0]);
129+
}
130+
}

‎src/Symfony/Component/Messenger/composer.json

Copy file name to clipboardExpand all lines: src/Symfony/Component/Messenger/composer.json
+3-1Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@
2121
"require-dev": {
2222
"symfony/serializer": "~3.4|~4.0",
2323
"symfony/dependency-injection": "~3.4.6|~4.0",
24-
"symfony/property-access": "~3.4|~4.0"
24+
"symfony/http-kernel": "~3.4|~4.0",
25+
"symfony/property-access": "~3.4|~4.0",
26+
"symfony/var-dumper": "~3.4|~4.0"
2527
},
2628
"suggest": {
2729
"sroze/enqueue-bridge": "For using the php-enqueue library as an adapter."

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.