Skip to content

Commit 7ccaa6b

Browse files
committed
close #68
1 parent bef7ae9 commit 7ccaa6b

File tree

5 files changed

+10
-8
lines changed

5 files changed

+10
-8
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -351,14 +351,14 @@ if ($result->skip()->contains('optionalJob')) {
351351

352352
## Dependency Injection
353353

354-
Workflow integrates with [chevere/container](https://chevere.org/packages/container) to provide automatic dependency injection for Action classes. When your jobs use Action classes with constructor dependencies, you can provide a container that will automatically resolve and inject those dependencies.
354+
Workflow supports automatic dependency injection for Action classes using any [PSR-11](https://www.php-fig.org/psr/psr-11/) compatible container. When your jobs use Action classes with constructor dependencies, you can provide a container that will automatically resolve and inject those dependencies. [chevere/container](https://chevere.org/packages/container) is one example, but any PSR-11 container works.
355355

356356
### Passing a Container
357357

358358
Pass a `ContainerInterface` instance as the second argument to `run()`:
359359

360360
```php
361-
use Chevere\Container\Container;
361+
use Chevere\Container\Container; // or any PSR-11 container
362362
use function Chevere\Workflow\run;
363363

364364
// Create container with dependencies

src/Interfaces/RunInterface.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313

1414
namespace Chevere\Workflow\Interfaces;
1515

16-
use Chevere\Container\Interfaces\ContainerInterface;
1716
use Chevere\DataStructure\Interfaces\StringMappedInterface;
1817
use Chevere\DataStructure\Interfaces\VectorInterface;
1918
use Chevere\Parameter\Interfaces\ArgumentsInterface;
2019
use Chevere\Parameter\Interfaces\TypedInterface;
20+
use Psr\Container\ContainerInterface;
2121

2222
/**
2323
* Describes the component in charge of defining a workflow run, with arguments returned for each job.

src/Run.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
namespace Chevere\Workflow;
1515

1616
use Chevere\Container\Container;
17-
use Chevere\Container\Interfaces\ContainerInterface;
1817
use Chevere\DataStructure\Interfaces\VectorInterface;
1918
use Chevere\DataStructure\Map;
2019
use Chevere\DataStructure\Traits\MapTrait;
@@ -26,6 +25,7 @@
2625
use Chevere\Workflow\Interfaces\RunInterface;
2726
use Chevere\Workflow\Interfaces\WorkflowInterface;
2827
use OverflowException;
28+
use Psr\Container\ContainerInterface;
2929
use function Chevere\Message\message;
3030
use function Chevere\Parameter\typed;
3131

@@ -62,8 +62,10 @@ public function __construct(
6262
);
6363
$this->map = new Map();
6464
$this->skip = new Vector();
65-
$this->container = $this->container
66-
->withAutoInject($this->workflow()->dependencies());
65+
if ($this->container instanceof Container) {
66+
$this->container = $this->container
67+
->withAutoInject($this->workflow()->dependencies());
68+
}
6769
$this->workflow()->dependencies()->assert($this->container);
6870
}
6971

src/Traits/WorkflowTrait.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515

1616
use BadMethodCallException;
1717
use Chevere\Container\Container;
18-
use Chevere\Container\Interfaces\ContainerInterface;
1918
use Chevere\Workflow\Interfaces\RunInterface;
2019
use Chevere\Workflow\Interfaces\WorkflowInterface;
20+
use Psr\Container\ContainerInterface;
2121
use function Chevere\Workflow\run;
2222

2323
/**

src/functions.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@
1515

1616
use Chevere\Action\Interfaces\ActionInterface;
1717
use Chevere\Container\Container;
18-
use Chevere\Container\Interfaces\ContainerInterface;
1918
use Chevere\Workflow\Interfaces\JobInterface;
2019
use Chevere\Workflow\Interfaces\ResponseReferenceInterface;
2120
use Chevere\Workflow\Interfaces\RunInterface;
2221
use Chevere\Workflow\Interfaces\RunnerInterface;
2322
use Chevere\Workflow\Interfaces\VariableInterface;
2423
use Chevere\Workflow\Interfaces\WorkflowInterface;
24+
use Psr\Container\ContainerInterface;
2525
use Throwable;
2626

2727
// @codeCoverageIgnoreStart

0 commit comments

Comments
 (0)