PluginProbe
Defender Security – Malware Scanner, Login Security & Firewall / 6.2.2
Defender Security – Malware Scanner, Login Security & Firewall v6.2.2
6.3.0 6.2.3 6.2.4 6.2.0 6.2.1 6.2.2 6.1.0 5.3.1 5.4.0 5.4.1 5.5.0 5.5.1 5.6.0 5.6.1 5.6.2 5.7.0 5.7.1 5.7.2 5.8.0 5.8.1 5.9.0 6.0.0 6.0.1 3.0.1 3.1.0 All 141 releases
defender-security / lib / packages / Ramsey / Uuid / Fields / SerializableFieldsTrait.php

SerializableFieldsTrait.php in Defender Security – Malware Scanner, Login Security & Firewall 6.2.2, at lib/packages/Ramsey/Uuid/Fields/SerializableFieldsTrait.php

84 lines 1.9 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 WP_DEFENDER_VENDOR\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 * @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 the 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 $data The serialized string representation of the object
60 */
61 public function unserialize(string $data): void
62 {
63 if (strlen($data) === 16) {
64 $this->__construct($data);
65 } else {
66 $this->__construct(base64_decode($data));
67 }
68 }
69
70 /**
71 * @param array{bytes?: string} $data
72 */
73 public function __unserialize(array $data): void
74 {
75 // @codeCoverageIgnoreStart
76 if (!isset($data['bytes'])) {
77 throw new ValueError(sprintf('%s(): Argument #1 ($data) is invalid', __METHOD__));
78 }
79 // @codeCoverageIgnoreEnd
80
81 $this->unserialize($data['bytes']);
82 }
83 }
84