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.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 / Resources / DTO / ReadResourceResult.php

ReadResourceResult.php in ZIP AI – AI Website Builder & AI Agent (Beta) 0.0.8, at lib/php-mcp-schema/src/Server/Resources/DTO/ReadResourceResult.php

89 lines 2.6 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\Resources\DTO;
6
7 use WP\McpSchema\Common\Protocol\DTO\Result;
8 use WP\McpSchema\Common\Traits\ValidatesRequiredFields;
9 use WP\McpSchema\Server\Lifecycle\Union\ServerResultInterface;
10
11 /**
12 * The server's response to a resources/read request from the client.
13 *
14 * @since 2024-11-05
15 * @last-updated 2025-11-25 (modified property: contents)
16 *
17 * @mcp-domain Server
18 * @mcp-subdomain Resources
19 * @mcp-version 2025-11-25
20 */
21 class ReadResourceResult extends Result implements ServerResultInterface
22 {
23 use ValidatesRequiredFields;
24
25 /**
26 * @since 2024-11-05
27 *
28 * @var array<\WP\McpSchema\Common\Protocol\DTO\TextResourceContents|\WP\McpSchema\Common\Protocol\DTO\BlobResourceContents>
29 */
30 protected array $contents;
31
32 /**
33 * @param array<\WP\McpSchema\Common\Protocol\DTO\TextResourceContents|\WP\McpSchema\Common\Protocol\DTO\BlobResourceContents> $contents @since 2024-11-05
34 * @param array<string, mixed>|null $_meta @since 2024-11-05
35 */
36 public function __construct(
37 array $contents,
38 ?array $_meta = null
39 ) {
40 parent::__construct($_meta);
41 $this->contents = $contents;
42 }
43
44 /**
45 * Creates an instance from an array.
46 *
47 * @param array{
48 * _meta?: array<string, mixed>|null,
49 * contents: array<\WP\McpSchema\Common\Protocol\DTO\TextResourceContents|\WP\McpSchema\Common\Protocol\DTO\BlobResourceContents>
50 * } $data
51 * @phpstan-param array<string, mixed> $data
52 * @return self
53 */
54 public static function fromArray(array $data): self
55 {
56 self::assertRequired($data, ['contents']);
57
58 /** @var array<\WP\McpSchema\Common\Protocol\DTO\TextResourceContents|\WP\McpSchema\Common\Protocol\DTO\BlobResourceContents> $contents */
59 $contents = self::asArray($data['contents']);
60
61 return new self(
62 $contents,
63 self::asArrayOrNull($data['_meta'] ?? 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 = parent::toArray();
75
76 $result['contents'] = array_map(static fn($item) => (is_object($item) && method_exists($item, 'toArray')) ? $item->toArray() : $item, $this->contents);
77
78 return $result;
79 }
80
81 /**
82 * @return array<\WP\McpSchema\Common\Protocol\DTO\TextResourceContents|\WP\McpSchema\Common\Protocol\DTO\BlobResourceContents>
83 */
84 public function getContents(): array
85 {
86 return $this->contents;
87 }
88 }
89