Skip to content

Commit f8d493d

Browse files
committed
Add WithFieldsTrait
1 parent b7485a1 commit f8d493d

File tree

2 files changed

+35
-2
lines changed

2 files changed

+35
-2
lines changed

infection.json.dist

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@
4646
},
4747
"Foreach_": {
4848
"ignore": [
49-
"WyriHaximus\\React\\SimpleORM\\Repository::buildTree"
49+
"WyriHaximus\\React\\SimpleORM\\Repository::buildTree",
50+
"WyriHaximus\\React\\SimpleORM\\Tools\\WithFieldsTrait::withFields"
5051
]
5152
},
5253
"CastString": {
@@ -67,7 +68,18 @@
6768
},
6869
"Continue_": {
6970
"ignore": [
70-
"WyriHaximus\\React\\SimpleORM\\Repository::buildJoins"
71+
"WyriHaximus\\React\\SimpleORM\\Repository::buildJoins",
72+
"WyriHaximus\\React\\SimpleORM\\Tools\\WithFieldsTrait::withFields"
73+
]
74+
},
75+
"PublicVisibility": {
76+
"ignore": [
77+
"WyriHaximus\\React\\SimpleORM\\Tools\\WithFieldsTrait::withFields"
78+
]
79+
},
80+
"ArrayItemRemoval": {
81+
"ignore": [
82+
"WyriHaximus\\React\\SimpleORM\\Tools\\WithFieldsTrait::withFields"
7183
]
7284
}
7385
}

src/Tools/WithFieldsTrait.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php declare(strict_types=1);
2+
3+
namespace WyriHaximus\React\SimpleORM\Tools;
4+
5+
trait WithFieldsTrait
6+
{
7+
public function withFields(array $fields): self
8+
{
9+
$clone = clone $this;
10+
11+
foreach ($fields as $key => $value) {
12+
if (\in_array($key, ['id', 'created', 'modified'], true)) {
13+
continue;
14+
}
15+
16+
$clone->$key = $value;
17+
}
18+
19+
return $clone;
20+
}
21+
}

0 commit comments

Comments
 (0)