PluginProbe
WCPOS – Point of Sale (POS) plugin for WooCommerce / 1.10.7
WCPOS – Point of Sale (POS) plugin for WooCommerce v1.10.7
1.10.20 1.10.19 1.10.18 1.10.17 1.10.16 1.10.15 1.10.13 1.10.14 1.10.12 1.10.11 1.10.10 1.10.9 1.10.8 untagged-3d9b7ccddc54df87c672 1.10.7 1.10.6 1.10.5 1.10.3 1.10.4 1.10.2 1.10.1 1.10.0 1.9.17 1.9.15 1.9.16 All 164 releases
woocommerce-pos / vendor / ramsey / uuid / src / Fields / SerializableFieldsTrait.php

SerializableFieldsTrait.php in WCPOS – Point of Sale (POS) plugin for WooCommerce 1.10.7, at vendor/ramsey/uuid/src/Fields/SerializableFieldsTrait.php

87 lines 2.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * This file is part of the ramsey/uuid library
5 *
6 * For the full copyright and license information, please view the LICENSE
7 * file that was distributed with this source code.
8 *
9 * @copyright Copyright (c) Ben Ramsey <[email protected]>
10 * @license http://opensource.org/licenses/MIT MIT
11 */
12
13 declare(strict_types=1);
14
15 namespace Ramsey\Uuid\Fields;
16
17 use ValueError;
18
19 use function base64_decode;
20 use function sprintf;
21 use function strlen;
22
23 /**
24 * Provides common serialization functionality to fields
25 *
26 * @psalm-immutable
27 */
28 trait SerializableFieldsTrait
29 {
30 /**
31 * @param string $bytes The bytes that comprise the fields
32 */
33 abstract public function __construct(string $bytes);
34
35 /**
36 * Returns the bytes that comprise the fields
37 */
38 abstract public function getBytes(): string;
39
40 /**
41 * Returns a string representation of object
42 */
43 public function serialize(): string
44 {
45 return $this->getBytes();
46 }
47
48 /**
49 * @return array{bytes: string}
50 */
51 public function __serialize(): array
52 {
53 return ['bytes' => $this->getBytes()];
54 }
55
56 /**
57 * Constructs the object from a serialized string representation
58 *
59 * @param string $serialized The serialized string representation of the object
60 *
61 * @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint
62 * @psalm-suppress UnusedMethodCall
63 */
64 public function unserialize($serialized): void
65 {
66 if (strlen($serialized) === 16) {
67 $this->__construct($serialized);
68 } else {
69 $this->__construct(base64_decode($serialized));
70 }
71 }
72
73 /**
74 * @param array{bytes: string} $data
75 */
76 public function __unserialize(array $data): void
77 {
78 // @codeCoverageIgnoreStart
79 if (!isset($data['bytes'])) {
80 throw new ValueError(sprintf('%s(): Argument #1 ($data) is invalid', __METHOD__));
81 }
82 // @codeCoverageIgnoreEnd
83
84 $this->unserialize($data['bytes']);
85 }
86 }
87