Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | n/a |
0 / 0 |
n/a |
0 / 0 |
CRAP | n/a |
0 / 0 |
1 | <?php |
2 | |
3 | declare(strict_types=1); |
4 | |
5 | namespace PeServer\Core\Serialization; |
6 | |
7 | use PeServer\Core\Throws\MapperKeyNotFoundException; |
8 | use PeServer\Core\Throws\MapperTypeException; |
9 | |
10 | /** |
11 | * 配列とオブジェクトの相互変換。 |
12 | * |
13 | * 細かい制御が必要な場合は `Mapping` 属性を使用する想定(実装クラスがサポートしていればになるが)。 |
14 | * |
15 | * * 配列とクラスの設計は十分に制御可能なデータであることが前提(=開発者が操作可能) |
16 | * * **!!現状相互ではない!!** |
17 | * * 相互にする気もない |
18 | */ |
19 | interface IMapper |
20 | { |
21 | #region function |
22 | |
23 | /** |
24 | * 配列データをオブジェクトにマッピング。 |
25 | * |
26 | * @param array<string,mixed> $source 元データ。 |
27 | * @param object $destination マッピング先 |
28 | * @throws MapperKeyNotFoundException キーが見つからない(`Mapping::FLAG_EXCEPTION_NOT_FOUND_KEY`)。 |
29 | * @throws MapperTypeException 型変換がもう無理(`Mapping::FLAG_EXCEPTION_TYPE_MISMATCH`)。 |
30 | */ |
31 | public function mapping(array $source, object $destination): void; |
32 | |
33 | /** |
34 | * オブジェクトデータを配列に変換。 |
35 | * |
36 | * @param object $source |
37 | * @return array<string,mixed> |
38 | */ |
39 | public function export(object $source): array; |
40 | |
41 | #endregion |
42 | } |