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 / Common / Protocol / DTO / TextResourceContents.php

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

93 lines 2.1 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\Protocol\DTO;
6
7 use WP\McpSchema\Common\Traits\ValidatesRequiredFields;
8 use WP\McpSchema\Server\Resources\DTO\ResourceContents;
9
10 /**
11 * @since 2024-11-05
12 * @last-updated 2025-06-18 (added properties: _meta)
13 *
14 * @mcp-domain Common
15 * @mcp-subdomain Protocol
16 * @mcp-version 2025-11-25
17 */
18 class TextResourceContents extends ResourceContents
19 {
20 use ValidatesRequiredFields;
21
22 /**
23 * The text of the item. This must only be set if the item can actually be represented as text (not binary data).
24 *
25 * @since 2024-11-05
26 *
27 * @var string
28 */
29 protected string $text;
30
31 /**
32 * @param string $uri @since 2024-11-05
33 * @param string $text @since 2024-11-05
34 * @param string|null $mimeType @since 2024-11-05
35 * @param array<string, mixed>|null $_meta @since 2025-06-18
36 */
37 public function __construct(
38 string $uri,
39 string $text,
40 ?string $mimeType = null,
41 ?array $_meta = null
42 ) {
43 parent::__construct($uri, $mimeType, $_meta);
44 $this->text = $text;
45 }
46
47 /**
48 * Creates an instance from an array.
49 *
50 * @param array{
51 * uri: string,
52 * mimeType?: string|null,
53 * _meta?: array<string, mixed>|null,
54 * text: string
55 * } $data
56 * @phpstan-param array<string, mixed> $data
57 * @return self
58 */
59 public static function fromArray(array $data): self
60 {
61 self::assertRequired($data, ['uri', 'text']);
62
63 return new self(
64 self::asString($data['uri']),
65 self::asString($data['text']),
66 self::asStringOrNull($data['mimeType'] ?? null),
67 self::asArrayOrNull($data['_meta'] ?? null)
68 );
69 }
70
71 /**
72 * Converts the instance to an array.
73 *
74 * @return array<string, mixed>
75 */
76 public function toArray(): array
77 {
78 $result = parent::toArray();
79
80 $result['text'] = $this->text;
81
82 return $result;
83 }
84
85 /**
86 * @return string
87 */
88 public function getText(): string
89 {
90 return $this->text;
91 }
92 }
93