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 / JSONRPCNotification.php

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

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