PluginProbe
Imagify Image Optimization: Optimize Images | Compress & Convert to WebP/AVIF / 2.3.0
Imagify Image Optimization: Optimize Images | Compress & Convert to WebP/AVIF v2.3.0
2.3.4 2.3.3 2.3.2 2.3.1 2.3.0 2.2.9 2.2.8 trunk 1.10 1.3.3 1.3.4 1.3.5 1.3.5.1 1.3.5.2 1.3.6 1.3.6.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.5 All 103 releases
imagify / vendor / wordpress / php-mcp-schema / src / Common / AbstractDataTransferObject.php

AbstractDataTransferObject.php in Imagify Image Optimization: Optimize Images | Compress & Convert to WebP/AVIF 2.3.0, 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