Skip to content

Commit e0403ea

Browse files
committed
Refactor event subscriptions
1 parent e66ea69 commit e0403ea

File tree

6 files changed

+45
-18
lines changed

6 files changed

+45
-18
lines changed

src/Events/CompletedEvent.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22

33
namespace Brexis\LaravelWorkflow\Events;
44

5+
/**
6+
* @author Peter Sweets <p.sweets@developers.nl>
7+
*/
58
class CompletedEvent extends BaseEvent
69
{
7-
8-
}
10+
//
11+
}

src/Events/EnterEvent.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@
77
*/
88
class EnterEvent extends BaseEvent
99
{
10+
//
1011
}

src/Events/EnteredEvent.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@
77
*/
88
class EnteredEvent extends BaseEvent
99
{
10+
//
1011
}

src/Events/LeaveEvent.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@
77
*/
88
class LeaveEvent extends BaseEvent
99
{
10+
//
1011
}

src/Events/TransitionEvent.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@
77
*/
88
class TransitionEvent extends BaseEvent
99
{
10+
//
1011
}

src/Events/WorkflowSubscriber.php

Lines changed: 36 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,59 +13,79 @@ class WorkflowSubscriber implements EventSubscriberInterface
1313
{
1414
public function guardEvent(SymfonyGuardEvent $event)
1515
{
16+
$workflowName = $event->getWorkflowName();
17+
$transitionName = $event->getTransition()->getName();
18+
1619
event(new GuardEvent($event));
1720
event('workflow.guard', $event);
18-
event('workflow.' . $event->getWorkflowName() . '.guard', $event);
19-
event('workflow.' . $event->getWorkflowName() . '.guard.' . $event->getTransition()->getName(), $event);
21+
event(sprintf('workflow.%s.guard', $workflowName), $event);
22+
event(sprintf('workflow.%s.guard.%s', $workflowName, $transitionName), $event);
2023
}
2124

2225
public function leaveEvent(Event $event)
2326
{
27+
$places = $event->getTransition()->getFroms();
28+
$workflowName = $event->getWorkflowName();
29+
2430
event(new LeaveEvent($event));
2531
event('workflow.leave', $event);
26-
event('workflow.' . $event->getWorkflowName() . '.leave', $event);
27-
foreach ($event->getTransition()->getFroms() as $marking) {
28-
event('workflow.' . $event->getWorkflowName() . '.leave.' . $marking, $event);
32+
event(sprintf('workflow.%s.leave', $workflowName), $event);
33+
34+
foreach ($places as $place) {
35+
event(sprintf('workflow.%s.leave.%s', $workflowName, $place), $event);
2936
}
3037
}
3138

3239
public function transitionEvent(Event $event)
3340
{
41+
$workflowName = $event->getWorkflowName();
42+
$transitionName = $event->getTransition()->getName();
43+
3444
event(new TransitionEvent($event));
3545
event('workflow.transition', $event);
36-
event('workflow.' . $event->getWorkflowName() . '.transition', $event);
37-
event('workflow.' . $event->getWorkflowName() . '.transition.' . $event->getTransition()->getName(), $event);
46+
event(sprintf('workflow.%s.transition', $workflowName), $event);
47+
event(sprintf('workflow.%s.transition.%s', $workflowName, $transitionName), $event);
3848
}
3949

4050
public function enterEvent(Event $event)
4151
{
52+
$places = $event->getTransition()->getTos();
53+
$workflowName = $event->getWorkflowName();
54+
4255
event(new EnterEvent($event));
4356
event('workflow.enter', $event);
44-
event('workflow.' . $event->getWorkflowName() . '.enter', $event);
45-
foreach ($event->getTransition()->getTos() as $marking) {
46-
event('workflow.' . $event->getWorkflowName() . '.enter.' . $marking, $event);
57+
event(sprintf('workflow.%s.enter', $workflowName), $event);
58+
59+
foreach ($places as $place) {
60+
event(sprintf('workflow.%s.enter.%s', $workflowName, $place), $event);
4761
}
4862
}
4963

5064
public function enteredEvent(Event $event)
5165
{
66+
$places = $event->getTransition()->getTos();
67+
$workflowName = $event->getWorkflowName();
68+
5269
event(new EnteredEvent($event));
5370
event('workflow.entered', $event);
54-
event('workflow.' . $event->getWorkflowName() . '.entered', $event);
55-
foreach ($event->getTransition()->getTos() as $marking) {
56-
event('workflow.' . $event->getWorkflowName() . '.entered.' . $marking, $event);
71+
event(sprintf('workflow.%s.entered', $workflowName), $event);
72+
73+
foreach ($places as $place) {
74+
event(sprintf('workflow.%s.entered.%s', $workflowName, $place), $event);
5775
}
5876
}
5977

6078
public function completedEvent(Event $event)
6179
{
80+
$workflowName = $event->getWorkflowName();
81+
$transitionName = $event->getTransition()->getName();
82+
6283
event(new CompletedEvent($event));
6384
event('workflow.completed', $event);
64-
event('workflow.' . $event->getWorkflowName() . '.completed', $event);
65-
event('workflow.' . $event->getWorkflowName() . '.completed.' . $event->getTransition()->getName(), $event);
85+
event(sprintf('workflow.%s.completed', $workflowName), $event);
86+
event(sprintf('workflow.%s.completed.%s', $workflowName, $transitionName), $event);
6687
}
6788

68-
6989
public static function getSubscribedEvents()
7090
{
7191
return [

0 commit comments

Comments
 (0)