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 / ListResourceTemplatesResult.php

ListResourceTemplatesResult.php in ZIP AI – AI Website Builder & AI Agent (Beta) 0.0.8, at lib/php-mcp-schema/src/Server/Resources/DTO/ListResourceTemplatesResult.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\Resources\DTO;
6
7 use WP\McpSchema\Common\Protocol\DTO\PaginatedResult;
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/templates/list request from the client.
13 *
14 * @since 2024-11-05
15 * @last-updated 2025-11-25 (modified property: resourceTemplates)
16 *
17 * @mcp-domain Server
18 * @mcp-subdomain Resources
19 * @mcp-version 2025-11-25
20 */
21 class ListResourceTemplatesResult extends PaginatedResult implements ServerResultInterface
22 {
23 use ValidatesRequiredFields;
24
25 /**
26 * @since 2024-11-05
27 *
28 * @var array<\WP\McpSchema\Server\Resources\DTO\ResourceTemplate>
29 */
30 protected array $resourceTemplates;
31
32 /**
33 * @param array<\WP\McpSchema\Server\Resources\DTO\ResourceTemplate> $resourceTemplates @since 2024-11-05
34 * @param string|null $nextCursor @since 2024-11-05
35 * @param array<string, mixed>|null $_meta @since 2024-11-05
36 */
37 public function __construct(
38 array $resourceTemplates,
39 ?string $nextCursor = null,
40 ?array $_meta = null
41 ) {
42 parent::__construct($_meta, $nextCursor);
43 $this->resourceTemplates = $resourceTemplates;
44 }
45
46 /**
47 * Creates an instance from an array.
48 *
49 * @param array{
50 * nextCursor?: string|null,
51 * _meta?: array<string, mixed>|null,
52 * resourceTemplates: array<array<string, mixed>|\WP\McpSchema\Server\Resources\DTO\ResourceTemplate>
53 * } $data
54 * @phpstan-param array<string, mixed> $data
55 * @return self
56 */
57 public static function fromArray(array $data): self
58 {
59 self::assertRequired($data, ['resourceTemplates']);
60
61 /** @var array<\WP\McpSchema\Server\Resources\DTO\ResourceTemplate> $resourceTemplates */
62 $resourceTemplates = array_map(
63 static fn($item) => is_array($item)
64 ? ResourceTemplate::fromArray($item)
65 : $item,
66 self::asArray($data['resourceTemplates'])
67 );
68
69 return new self(
70 $resourceTemplates,
71 self::asStringOrNull($data['nextCursor'] ?? null),
72 self::asArrayOrNull($data['_meta'] ?? null)
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['resourceTemplates'] = array_map(static fn($item) => $item->toArray(), $this->resourceTemplates);
86
87 return $result;
88 }
89
90 /**
91 * @return array<\WP\McpSchema\Server\Resources\DTO\ResourceTemplate>
92 */
93 public function getResourceTemplates(): array
94 {
95 return $this->resourceTemplates;
96 }
97 }
98