@@ 9-43 (lines=35) @@ | ||
6 | ||
7 | use Indigerd\Hydrator\Hydrator; |
|
8 | ||
9 | class ElasticHydrator extends Hydrator |
|
10 | { |
|
11 | /** |
|
12 | * @param $target |
|
13 | * @param array $data |
|
14 | * @return object |
|
15 | */ |
|
16 | public function hydrate($target, array $data): object |
|
17 | { |
|
18 | $entityData = []; |
|
19 | if (isset($data['_id'])) { |
|
20 | $entityData['id'] = (string)$data['_id']; |
|
21 | } |
|
22 | ||
23 | $entityData += $data['_source']; |
|
24 | ||
25 | return parent::hydrate($target, $entityData); |
|
26 | } |
|
27 | ||
28 | /** |
|
29 | * @param object $object |
|
30 | * @param array $fields |
|
31 | * @return array |
|
32 | */ |
|
33 | public function extract(object $object, array $fields = []): array |
|
34 | { |
|
35 | $result = parent::extract($object, $fields); |
|
36 | if (isset($result['id'])) { |
|
37 | $result['_id'] = $result['id']; |
|
38 | unset($result['id']); |
|
39 | } |
|
40 | ||
41 | return $result; |
|
42 | } |
|
43 | } |
|
44 |
@@ 7-27 (lines=21) @@ | ||
4 | ||
5 | use Indigerd\Hydrator\Hydrator; |
|
6 | ||
7 | class MongoHydrator extends Hydrator |
|
8 | { |
|
9 | public function hydrate($target, array $data): object |
|
10 | { |
|
11 | if (isset($data['_id'])) { |
|
12 | $data['id'] = (string)$data['_id']; |
|
13 | unset($data['_id']); |
|
14 | } |
|
15 | return parent::hydrate($target, $data); |
|
16 | } |
|
17 | ||
18 | public function extract(object $object, array $fields = []): array |
|
19 | { |
|
20 | $result = parent::extract($object, $fields); |
|
21 | if (isset($result['id'])) { |
|
22 | $result['_id'] = $result['id']; |
|
23 | unset($result['id']); |
|
24 | } |
|
25 | return $result; |
|
26 | } |
|
27 | } |
|
28 |