PluginProbe ʕ •ᴥ•ʔ
CommerceBird – AI Command Center, ERP Integrations & B2B for WooCommerce (Zoho, Exact Online). / trunk
CommerceBird – AI Command Center, ERP Integrations & B2B for WooCommerce (Zoho, Exact Online). vtrunk
3.0.3 3.0.2 3.0.1 trunk 2.2.14 2.2.15 2.2.16 2.2.17 2.2.18 2.2.19 2.3.0 2.3.1 2.3.10 2.3.11 2.3.12 2.3.13 2.3.14 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.3.8 2.3.9 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.7.91 2.7.92 2.7.93 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.9.0 2.9.1 2.9.2 2.9.3 3.0.0
commercebird / vendor / wordpress / php-mcp-schema / src / Common / JsonRpc / DTO / JSONRPCRequest.php
commercebird / vendor / wordpress / php-mcp-schema / src / Common / JsonRpc / DTO Last commit date
Error.php 3 months ago JSONRPCErrorResponse.php 3 months ago JSONRPCNotification.php 3 months ago JSONRPCRequest.php 3 months ago JSONRPCResultResponse.php 3 months ago Notification.php 3 months ago NotificationParams.php 3 months ago Request.php 3 months ago RequestParams.php 3 months ago RequestParamsMeta.php 3 months ago
JSONRPCRequest.php
115 lines
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 request that expects 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 JSONRPCRequest extends Request 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 * @since 2024-11-05
32 *
33 * @var string|number
34 */
35 protected $id;
36
37 /**
38 * @param string $method @since 2024-11-05
39 * @param '2.0' $jsonrpc @since 2024-11-05
40 * @param string|number $id @since 2024-11-05
41 * @param array<string, mixed>|null $params @since 2024-11-05
42 */
43 public function __construct(
44 string $method,
45 string $jsonrpc,
46 $id,
47 ?array $params = null
48 ) {
49 parent::__construct($method, $params);
50 $this->jsonrpc = $jsonrpc;
51 $this->id = $id;
52 }
53
54 /**
55 * Creates an instance from an array.
56 *
57 * @param array{
58 * method: string,
59 * params?: array<string, mixed>|null,
60 * jsonrpc: '2.0',
61 * id: string|number
62 * } $data
63 * @phpstan-param array<string, mixed> $data
64 * @return self
65 */
66 public static function fromArray(array $data): self
67 {
68 self::assertRequired($data, ['method', 'jsonrpc', 'id']);
69
70 /** @var '2.0' $jsonrpc */
71 $jsonrpc = self::asString($data['jsonrpc']);
72
73 /** @var string|number $id */
74 $id = self::asStringOrNumber($data['id']);
75
76 return new self(
77 self::asString($data['method']),
78 $jsonrpc,
79 $id,
80 self::asArrayOrNull($data['params'] ?? null)
81 );
82 }
83
84 /**
85 * Converts the instance to an array.
86 *
87 * @return array<string, mixed>
88 */
89 public function toArray(): array
90 {
91 $result = parent::toArray();
92
93 $result['jsonrpc'] = $this->jsonrpc;
94 $result['id'] = $this->id;
95
96 return $result;
97 }
98
99 /**
100 * @return '2.0'
101 */
102 public function getJsonrpc(): string
103 {
104 return $this->jsonrpc;
105 }
106
107 /**
108 * @return string|number
109 */
110 public function getId()
111 {
112 return $this->id;
113 }
114 }
115