PluginProbe
Imagify Image Optimization: Optimize Images | Compress & Convert to WebP/AVIF / trunk
Imagify Image Optimization: Optimize Images | Compress & Convert to WebP/AVIF vtrunk
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 / JsonRpc / DTO / JSONRPCNotification.php

JSONRPCNotification.php in Imagify Image Optimization: Optimize Images | Compress & Convert to WebP/AVIF trunk, at vendor/wordpress/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