/
BinNormalizer.php
44 lines (33 loc) 路 948 Bytes
/
BinNormalizer.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
declare(strict_types=1);
/**
* Copyright (c) 2018-2022 Andreas M枚ller
*
* For the full copyright and license information, please view
* the LICENSE.md file that was distributed with this source code.
*
* @see https://github.com/ergebnis/json-normalizer
*/
namespace Ergebnis\Json\Normalizer\Vendor\Composer;
use Ergebnis\Json\Normalizer\Json;
use Ergebnis\Json\Normalizer\Normalizer;
final class BinNormalizer implements Normalizer
{
public function normalize(Json $json): Json
{
$decoded = $json->decoded();
if (
!\is_object($decoded)
|| !\property_exists($decoded, 'bin')
|| !\is_array($decoded->bin)
) {
return $json;
}
$bin = $decoded->bin;
\sort($bin);
$decoded->bin = $bin;
/** @var string $encoded */
$encoded = \json_encode($decoded);
return Json::fromEncoded($encoded);
}
}