PluginProbe
ZIP AI – AI Website Builder & AI Agent (Beta) / 0.0.8
ZIP AI – AI Website Builder & AI Agent (Beta) v0.0.8
0.0.11 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 / JsonRpc / DTO / Notification.php

Notification.php in ZIP AI – AI Website Builder & AI Agent (Beta) 0.0.8, at lib/php-mcp-schema/src/Common/JsonRpc/DTO/Notification.php

100 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 declare(strict_types=1);
4
5 namespace WP\McpSchema\Common\JsonRpc\DTO;
6
7 use WP\McpSchema\Common\AbstractDataTransferObject;
8 use WP\McpSchema\Common\Traits\ValidatesRequiredFields;
9
10 /**
11 * @since 2024-11-05
12 *
13 * @mcp-domain Common
14 * @mcp-subdomain JsonRpc
15 * @mcp-version 2025-11-25
16 */
17 class Notification extends AbstractDataTransferObject
18 {
19 use ValidatesRequiredFields;
20
21 /**
22 * @since 2024-11-05
23 *
24 * @var string
25 */
26 protected string $method;
27
28 /**
29 * @since 2024-11-05
30 *
31 * @var array<string, mixed>|null
32 */
33 protected ?array $params;
34
35 /**
36 * @param string $method @since 2024-11-05
37 * @param array<string, mixed>|null $params @since 2024-11-05
38 */
39 public function __construct(
40 string $method,
41 ?array $params = null
42 ) {
43 $this->method = $method;
44 $this->params = $params;
45 }
46
47 /**
48 * Creates an instance from an array.
49 *
50 * @param array{
51 * method: string,
52 * params?: array<string, mixed>|null
53 * } $data
54 * @phpstan-param array<string, mixed> $data
55 * @return self
56 */
57 public static function fromArray(array $data): self
58 {
59 self::assertRequired($data, ['method']);
60
61 return new self(
62 self::asString($data['method']),
63 self::asArrayOrNull($data['params'] ?? null)
64 );
65 }
66
67 /**
68 * Converts the instance to an array.
69 *
70 * @return array<string, mixed>
71 */
72 public function toArray(): array
73 {
74 $result = [];
75
76 $result['method'] = $this->method;
77 if ($this->params !== null) {
78 $result['params'] = $this->params;
79 }
80
81 return $result;
82 }
83
84 /**
85 * @return string
86 */
87 public function getMethod(): string
88 {
89 return $this->method;
90 }
91
92 /**
93 * @return array<string, mixed>|null
94 */
95 public function getParams(): ?array
96 {
97 return $this->params;
98 }
99 }
100