Skip to content

Commit 8132770

Browse files
committed
Add an ExecutableWorkflow interface to pass around ready workflows
1 parent 34cddae commit 8132770

7 files changed

Lines changed: 27 additions & 33 deletions

File tree

src/ExecutableWorkflow.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
3+
namespace PHPWorkflow;
4+
5+
use PHPWorkflow\State\WorkflowContainer;
6+
use PHPWorkflow\State\WorkflowResult;
7+
8+
interface ExecutableWorkflow
9+
{
10+
public function executeWorkflow(
11+
WorkflowContainer $workflowContainer = null,
12+
bool $throwOnFailure = true,
13+
bool $logErrors = true
14+
): WorkflowResult;
15+
}

src/Stage/After.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@
44

55
namespace PHPWorkflow\Stage;
66

7+
use PHPWorkflow\ExecutableWorkflow;
78
use PHPWorkflow\State\WorkflowState;
89
use PHPWorkflow\Stage\Next\AllowNextExecuteWorkflow;
910
use PHPWorkflow\Step\WorkflowStep;
1011

11-
class After extends MultiStepStage
12+
class After extends MultiStepStage implements ExecutableWorkflow
1213
{
1314
use AllowNextExecuteWorkflow;
1415

src/Stage/AfterProcess.php

Lines changed: 0 additions & 25 deletions
This file was deleted.

src/Stage/OnError.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@
44

55
namespace PHPWorkflow\Stage;
66

7+
use PHPWorkflow\ExecutableWorkflow;
78
use PHPWorkflow\State\WorkflowState;
89
use PHPWorkflow\Stage\Next\AllowNextAfter;
910
use PHPWorkflow\Stage\Next\AllowNextOnSuccess;
1011
use PHPWorkflow\Stage\Next\AllowNextExecuteWorkflow;
1112
use PHPWorkflow\Step\WorkflowStep;
1213

13-
class OnError extends MultiStepStage
14+
class OnError extends MultiStepStage implements ExecutableWorkflow
1415
{
1516
use
1617
AllowNextOnSuccess,

src/Stage/OnSuccess.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@
44

55
namespace PHPWorkflow\Stage;
66

7+
use PHPWorkflow\ExecutableWorkflow;
78
use PHPWorkflow\State\WorkflowState;
89
use PHPWorkflow\Stage\Next\AllowNextAfter;
910
use PHPWorkflow\Stage\Next\AllowNextOnError;
1011
use PHPWorkflow\Stage\Next\AllowNextExecuteWorkflow;
1112
use PHPWorkflow\Step\WorkflowStep;
1213

13-
class OnSuccess extends MultiStepStage
14+
class OnSuccess extends MultiStepStage implements ExecutableWorkflow
1415
{
1516
use
1617
AllowNextOnError,

src/Stage/Process.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,15 @@
55
namespace PHPWorkflow\Stage;
66

77
use Exception;
8+
use PHPWorkflow\ExecutableWorkflow;
89
use PHPWorkflow\Stage\Next\AllowNextAfter;
910
use PHPWorkflow\Stage\Next\AllowNextExecuteWorkflow;
1011
use PHPWorkflow\Stage\Next\AllowNextOnError;
1112
use PHPWorkflow\Stage\Next\AllowNextOnSuccess;
1213
use PHPWorkflow\State\WorkflowState;
1314
use PHPWorkflow\Step\WorkflowStep;
1415

15-
class Process extends MultiStepStage
16+
class Process extends MultiStepStage implements ExecutableWorkflow
1617
{
1718
use
1819
AllowNextOnSuccess,

src/Step/WorkflowStep.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@
1010
interface WorkflowStep
1111
{
1212
/**
13-
* Implement the logic for your step
13+
* Describe in a few words what this step does
1414
*/
15-
public function run(WorkflowControl $control, WorkflowContainer $container);
15+
public function getDescription(): string;
1616

1717
/**
18-
* Describe in a few words what this step does
18+
* Implement the logic for your step
1919
*/
20-
public function getDescription(): string;
20+
public function run(WorkflowControl $control, WorkflowContainer $container);
2121
}

0 commit comments

Comments
 (0)