Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 10 |
|
0.00% |
0 / 6 |
CRAP | |
0.00% |
0 / 1 |
DeferredInsertLifecycleHandler | |
0.00% |
0 / 10 |
|
0.00% |
0 / 6 |
42 | |
0.00% |
0 / 1 |
__construct | |
0.00% |
0 / 2 |
|
0.00% |
0 / 1 |
2 | |||
onAfterInsert | |
0.00% |
0 / 4 |
|
0.00% |
0 / 1 |
2 | |||
onAfterUpdate | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
onAfterRemove | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
onAfterLoad | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
onAfterClear | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 |
1 | <?php |
2 | |
3 | namespace Flow\Data\Listener; |
4 | |
5 | use Flow\Data\LifecycleHandler; |
6 | use SplQueue; |
7 | |
8 | class DeferredInsertLifecycleHandler implements LifecycleHandler { |
9 | /** |
10 | * @var SplQueue |
11 | */ |
12 | protected $queue; |
13 | |
14 | /** |
15 | * @var LifecycleHandler |
16 | */ |
17 | protected $nested; |
18 | |
19 | /** |
20 | * @param SplQueue $queue |
21 | * @param LifecycleHandler $nested |
22 | */ |
23 | public function __construct( SplQueue $queue, LifecycleHandler $nested ) { |
24 | $this->queue = $queue; |
25 | $this->nested = $nested; |
26 | } |
27 | |
28 | /** |
29 | * @param object $object |
30 | * @param array $new |
31 | * @param array $metadata |
32 | */ |
33 | public function onAfterInsert( $object, array $new, array $metadata ) { |
34 | $nested = $this->nested; |
35 | $this->queue->enqueue( static function () use ( $nested, $object, $new, $metadata ) { |
36 | $nested->onAfterInsert( $object, $new, $metadata ); |
37 | } ); |
38 | } |
39 | |
40 | /** |
41 | * @param object $object |
42 | * @param array $old |
43 | * @param array $new |
44 | * @param array $metadata |
45 | */ |
46 | public function onAfterUpdate( $object, array $old, array $new, array $metadata ) { |
47 | $this->nested->onAfterUpdate( $object, $old, $new, $metadata ); |
48 | } |
49 | |
50 | /** |
51 | * @param object $object |
52 | * @param array $old |
53 | * @param array $metadata |
54 | */ |
55 | public function onAfterRemove( $object, array $old, array $metadata ) { |
56 | $this->nested->onAfterRemove( $object, $old, $metadata ); |
57 | } |
58 | |
59 | /** |
60 | * @param object $object |
61 | * @param array $old |
62 | */ |
63 | public function onAfterLoad( $object, array $old ) { |
64 | $this->nested->onAfterLoad( $object, $old ); |
65 | } |
66 | |
67 | public function onAfterClear() { |
68 | // Not clearing $this->queue, this is not data but actual code |
69 | // that needs to be run. |
70 | } |
71 | } |