PluginProbe
ZIP AI – AI Website Builder & AI Agent (Beta) / trunk
ZIP AI – AI Website Builder & AI Agent (Beta) vtrunk
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 / Server / Logging / DTO / LoggingMessageNotification.php

LoggingMessageNotification.php in ZIP AI – AI Website Builder & AI Agent (Beta) trunk, at lib/php-mcp-schema/src/Server/Logging/DTO/LoggingMessageNotification.php

98 lines 2.8 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\Server\Logging\DTO;
6
7 use WP\McpSchema\Common\JsonRpc\DTO\JSONRPCNotification;
8 use WP\McpSchema\Common\Traits\ValidatesRequiredFields;
9 use WP\McpSchema\Server\Lifecycle\Union\ServerNotificationInterface;
10
11 /**
12 * JSONRPCNotification of a log message passed from server to client. If no logging/setLevel request has been sent from the client, the server MAY decide which messages to send automatically.
13 *
14 * @since 2024-11-05
15 * @last-updated 2025-11-25 (modified property: params)
16 *
17 * @mcp-domain Server
18 * @mcp-subdomain Logging
19 * @mcp-version 2025-11-25
20 */
21 class LoggingMessageNotification extends JSONRPCNotification implements ServerNotificationInterface
22 {
23 use ValidatesRequiredFields;
24
25 public const METHOD = 'notifications/message';
26
27 public const DISCRIMINATOR_FIELD = 'method';
28 public const DISCRIMINATOR_VALUE = 'notifications/message';
29
30 /**
31 * @var \WP\McpSchema\Server\Logging\DTO\LoggingMessageNotificationParams
32 */
33 protected LoggingMessageNotificationParams $typedParams;
34
35 /**
36 * @param '2.0' $jsonrpc @since 2025-11-25
37 * @param \WP\McpSchema\Server\Logging\DTO\LoggingMessageNotificationParams $params @since 2024-11-05
38 */
39 public function __construct(
40 string $jsonrpc,
41 LoggingMessageNotificationParams $params
42 ) {
43 parent::__construct(self::METHOD, $jsonrpc, null);
44 $this->typedParams = $params;
45 }
46
47 /**
48 * Creates an instance from an array.
49 *
50 * @param array{
51 * jsonrpc: '2.0',
52 * method: 'notifications/message',
53 * params: array<string, mixed>|\WP\McpSchema\Server\Logging\DTO\LoggingMessageNotificationParams
54 * } $data
55 * @phpstan-param array<string, mixed> $data
56 * @return self
57 */
58 public static function fromArray(array $data): self
59 {
60 self::assertRequired($data, ['jsonrpc', 'params']);
61
62 /** @var '2.0' $jsonrpc */
63 $jsonrpc = self::asString($data['jsonrpc']);
64
65 /** @var \WP\McpSchema\Server\Logging\DTO\LoggingMessageNotificationParams $params */
66 $params = is_array($data['params'])
67 ? LoggingMessageNotificationParams::fromArray(self::asArray($data['params']))
68 : $data['params'];
69
70 return new self(
71 $jsonrpc,
72 $params
73 );
74 }
75
76 /**
77 * Converts the instance to an array.
78 *
79 * @return array<string, mixed>
80 */
81 public function toArray(): array
82 {
83 $result = parent::toArray();
84
85 $result['params'] = $this->typedParams->toArray();
86
87 return $result;
88 }
89
90 /**
91 * @return \WP\McpSchema\Server\Logging\DTO\LoggingMessageNotificationParams
92 */
93 public function getTypedParams(): LoggingMessageNotificationParams
94 {
95 return $this->typedParams;
96 }
97 }
98