PluginProbe
The Innovative Form Builder – IvyForms / 1.5.1
The Innovative Form Builder – IvyForms v1.5.1
1.5.1 1.5 1.4.1 1.4 trunk 0.1.2 0.2 0.2.1 0.3 0.3.1 0.4 0.5 0.6 0.6.1 0.6.1-backup 0.6.1.1 0.7 0.8 0.8.1 0.8.2 0.9 0.9.1 1.0 1.1 1.1.1 All 27 releases
ivyforms / backend / vendor / wordpress / php-mcp-schema / src / Common / AbstractDataTransferObject.php

AbstractDataTransferObject.php in The Innovative Form Builder – IvyForms 1.5.1, at backend/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