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

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

84 lines 1.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\Common\Protocol\DTO;
6
7 use WP\McpSchema\Common\Traits\ValidatesRequiredFields;
8
9 /**
10 * @since 2024-11-05
11 *
12 * @mcp-domain Common
13 * @mcp-subdomain Protocol
14 * @mcp-version 2025-11-25
15 */
16 class PaginatedResult extends Result
17 {
18 use ValidatesRequiredFields;
19
20 /**
21 * An opaque token representing the pagination position after the last returned result.
22 * If present, there may be more results available.
23 *
24 * @since 2024-11-05
25 *
26 * @var string|null
27 */
28 protected ?string $nextCursor;
29
30 /**
31 * @param array<string, mixed>|null $_meta @since 2024-11-05
32 * @param string|null $nextCursor @since 2024-11-05
33 */
34 public function __construct(
35 ?array $_meta = null,
36 ?string $nextCursor = null
37 ) {
38 parent::__construct($_meta);
39 $this->nextCursor = $nextCursor;
40 }
41
42 /**
43 * Creates an instance from an array.
44 *
45 * @param array{
46 * _meta?: array<string, mixed>|null,
47 * nextCursor?: string|null
48 * } $data
49 * @phpstan-param array<string, mixed> $data
50 * @return self
51 */
52 public static function fromArray(array $data): self
53 {
54 return new self(
55 self::asArrayOrNull($data['_meta'] ?? null),
56 self::asStringOrNull($data['nextCursor'] ?? null)
57 );
58 }
59
60 /**
61 * Converts the instance to an array.
62 *
63 * @return array<string, mixed>
64 */
65 public function toArray(): array
66 {
67 $result = parent::toArray();
68
69 if ($this->nextCursor !== null) {
70 $result['nextCursor'] = $this->nextCursor;
71 }
72
73 return $result;
74 }
75
76 /**
77 * @return string|null
78 */
79 public function getNextCursor(): ?string
80 {
81 return $this->nextCursor;
82 }
83 }
84