PluginProbe
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages / trunk
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages vtrunk
3.4.1 3.4.0 3.3.9 3.3.8 3.3.7 3.3.6 3.3.5 3.3.4 3.3.3 3.3.2 3.3.1 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 2.3.0 2.3.1 2.3.2 2.3.3 All 194 releases
convertkit / vendor / wordpress / php-mcp-schema / src / Common / AbstractDataTransferObject.php

AbstractDataTransferObject.php in Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages trunk, at vendor/wordpress/php-mcp-schema/src/Common/AbstractDataTransferObject.php

52 lines 1.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 namespace WP\McpSchema\Common;
6
7 /**
8 * Base class for all Data Transfer Objects.
9 *
10 * @mcp-version 2025-11-25
11 */
12 abstract class AbstractDataTransferObject
13 {
14 /**
15 * Creates an instance from an array.
16 *
17 * @param array<string, mixed> $data
18 * @return static
19 */
20 abstract public static function fromArray(array $data): self;
21
22 /**
23 * Converts the instance to an array.
24 *
25 * @return array<string, mixed>
26 */
27 abstract public function toArray(): array;
28
29 /**
30 * Converts the instance to JSON.
31 *
32 * @return string
33 */
34 public function toJson(): string
35 {
36 return json_encode($this->toArray(), JSON_THROW_ON_ERROR);
37 }
38
39 /**
40 * Creates an instance from JSON.
41 *
42 * @param string $json
43 * @return static
44 */
45 public static function fromJson(string $json): self
46 {
47 /** @var array<string, mixed> $data */
48 $data = json_decode($json, true, 512, JSON_THROW_ON_ERROR);
49 return static::fromArray($data);
50 }
51 }
52