Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
100.00% |
8 / 8 |
|
100.00% |
1 / 1 |
CRAP | |
100.00% |
1 / 1 |
WithAssignedField | |
100.00% |
8 / 8 |
|
100.00% |
1 / 1 |
3 | |
100.00% |
1 / 1 |
assign | |
100.00% |
8 / 8 |
|
100.00% |
1 / 1 |
3 |
1 | <?php |
2 | |
3 | namespace Verja; |
4 | |
5 | trait WithAssignedField |
6 | { |
7 | /** @var Field */ |
8 | protected $field; |
9 | |
10 | /** |
11 | * Assign $this to $field |
12 | * |
13 | * Clones $this when already assigned. |
14 | * |
15 | * @param Field $field |
16 | * @return $this |
17 | */ |
18 | public function assign(Field $field) |
19 | { |
20 | if ($this->field !== null && $this->field !== $field) { |
21 | // already assigned - clone me and assign $field to the clone |
22 | $myField = $this->field; |
23 | $this->field = null; |
24 | $clone = clone $this; |
25 | $this->field = $myField; |
26 | |
27 | return $clone->assign($field); |
28 | } |
29 | |
30 | $this->field = $field; |
31 | return $this; |
32 | } |
33 | } |