PluginProbe
ZIP AI – AI Website Builder & AI Agent (Beta) / trunk
ZIP AI – AI Website Builder & AI Agent (Beta) vtrunk
0.0.10 0.0.9 trunk 0.0.4 0.0.5 0.0.6 0.0.7 0.0.8
zip-ai / lib / php-mcp-schema / src / Common / AbstractDataTransferObject.php

AbstractDataTransferObject.php in ZIP AI – AI Website Builder & AI Agent (Beta) trunk, at lib/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