Skip to content

Commit b3400c7

Browse files
committed
[Workflow] Added the workflow name to all events dispatched
1 parent d236af6 commit b3400c7

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

src/Symfony/Component/Workflow/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ CHANGELOG
77
* Added `workflow.entered` events which is fired after the marking has been set.
88
* Deprecated class name support in `WorkflowRegistry::add()` as second parameter.
99
Wrap the class name in an instance of ClassInstanceSupportStrategy instead.
10+
* Added support for `Event::getWorkflowName()`.

src/Symfony/Component/Workflow/Event/Event.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,20 @@ class Event extends BaseEvent
2424
private $subject;
2525
private $marking;
2626
private $transition;
27+
private $workflowName;
2728

2829
/**
2930
* @param object $subject
3031
* @param Marking $marking
3132
* @param Transition $transition
33+
* @param string $workflowName
3234
*/
33-
public function __construct($subject, Marking $marking, Transition $transition)
35+
public function __construct($subject, Marking $marking, Transition $transition, $workflowName = 'unnamed')
3436
{
3537
$this->subject = $subject;
3638
$this->marking = $marking;
3739
$this->transition = $transition;
40+
$this->workflowName = $workflowName;
3841
}
3942

4043
public function getMarking()
@@ -51,4 +54,9 @@ public function getTransition()
5154
{
5255
return $this->transition;
5356
}
57+
58+
public function getWorkflowName()
59+
{
60+
return $this->workflowName;
61+
}
5462
}

src/Symfony/Component/Workflow/Workflow.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ private function guardTransition($subject, Marking $marking, Transition $transit
214214
return;
215215
}
216216

217-
$event = new GuardEvent($subject, $marking, $transition);
217+
$event = new GuardEvent($subject, $marking, $transition, $this->name);
218218

219219
$this->dispatcher->dispatch('workflow.guard', $event);
220220
$this->dispatcher->dispatch(sprintf('workflow.%s.guard', $this->name), $event);
@@ -226,7 +226,7 @@ private function guardTransition($subject, Marking $marking, Transition $transit
226226
private function leave($subject, Transition $transition, Marking $marking)
227227
{
228228
if (null !== $this->dispatcher) {
229-
$event = new Event($subject, $marking, $transition);
229+
$event = new Event($subject, $marking, $transition, $this->name);
230230

231231
$this->dispatcher->dispatch('workflow.leave', $event);
232232
$this->dispatcher->dispatch(sprintf('workflow.%s.leave', $this->name), $event);
@@ -247,7 +247,7 @@ private function transition($subject, Transition $transition, Marking $marking)
247247
return;
248248
}
249249

250-
$event = new Event($subject, $marking, $transition);
250+
$event = new Event($subject, $marking, $transition, $this->name);
251251

252252
$this->dispatcher->dispatch('workflow.transition', $event);
253253
$this->dispatcher->dispatch(sprintf('workflow.%s.transition', $this->name), $event);
@@ -257,7 +257,7 @@ private function transition($subject, Transition $transition, Marking $marking)
257257
private function enter($subject, Transition $transition, Marking $marking)
258258
{
259259
if (null !== $this->dispatcher) {
260-
$event = new Event($subject, $marking, $transition);
260+
$event = new Event($subject, $marking, $transition, $this->name);
261261

262262
$this->dispatcher->dispatch('workflow.enter', $event);
263263
$this->dispatcher->dispatch(sprintf('workflow.%s.enter', $this->name), $event);
@@ -278,7 +278,7 @@ private function entered($subject, Transition $transition, Marking $marking)
278278
return;
279279
}
280280

281-
$event = new Event($subject, $marking, $transition);
281+
$event = new Event($subject, $marking, $transition, $this->name);
282282

283283
$this->dispatcher->dispatch('workflow.entered', $event);
284284
$this->dispatcher->dispatch(sprintf('workflow.%s.entered', $this->name), $event);

0 commit comments

Comments
 (0)