PluginProbe
Imagify Image Optimization: Optimize Images | Compress & Convert to WebP/AVIF / 2.3.2
Imagify Image Optimization: Optimize Images | Compress & Convert to WebP/AVIF v2.3.2
2.3.4 2.3.3 2.3.2 2.3.1 2.3.0 2.2.9 2.2.8 trunk 1.10 1.3.3 1.3.4 1.3.5 1.3.5.1 1.3.5.2 1.3.6 1.3.6.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.5 All 103 releases
imagify / vendor / wordpress / php-mcp-schema / src / Common / Protocol / DTO / BlobResourceContents.php

BlobResourceContents.php in Imagify Image Optimization: Optimize Images | Compress & Convert to WebP/AVIF 2.3.2, at vendor/wordpress/php-mcp-schema/src/Common/Protocol/DTO/BlobResourceContents.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 BlobResourceContents extends ResourceContents
19 {
20 use ValidatesRequiredFields;
21
22 /**
23 * A base64-encoded string representing the binary data of the item.
24 *
25 * @since 2024-11-05
26 *
27 * @var string
28 */
29 protected string $blob;
30
31 /**
32 * @param string $uri @since 2024-11-05
33 * @param string $blob @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 $blob,
40 ?string $mimeType = null,
41 ?array $_meta = null
42 ) {
43 parent::__construct($uri, $mimeType, $_meta);
44 $this->blob = $blob;
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 * blob: 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', 'blob']);
62
63 return new self(
64 self::asString($data['uri']),
65 self::asString($data['blob']),
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['blob'] = $this->blob;
81
82 return $result;
83 }
84
85 /**
86 * @return string
87 */
88 public function getBlob(): string
89 {
90 return $this->blob;
91 }
92 }
93